From 7d3cec9a650473e9b1448f6ed353b060f84388d6 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen Date: Mon, 17 Oct 2022 10:40:03 -0500 Subject: [PATCH 01/19] Updates for dbt-utils to dbt-core cross-db macro migration --- integration_tests/dbt_project.yml | 10 +++++----- .../intermediate/int__daily_klaviyo_user_metrics.sql | 2 +- .../int__daily_shopify_customer_orders.sql | 2 +- models/intermediate/int__klaviyo_person_rollup.sql | 2 +- models/intermediate/int__shopify_customer_rollup.sql | 4 ++-- .../shopify_holistic_reporting__orders_attribution.sql | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index d4c15fd..18c4240 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -67,7 +67,7 @@ vars: - 'cancelled order' dispatch: - macro_namespace: dbt_utils - search_order: ['shopify_holistic_reporting','spark_utils', 'dbt_utils'] + search_order: ['shopify_holistic_reporting','!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!_utils', 'dbt_utils'] seeds: shopify_holistic_reporting_integration_tests: @@ -138,15 +138,15 @@ seeds: # klaviyo person: +column_types: - phone_number: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" + phone_number: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" flow: +enabled: "{{ true if target.type != 'snowflake' else false }}" +quote_columns: "{{ true if target.type == 'redshift' else false }}" +column_types: - trigger: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" + trigger: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" flow_snowflake: +enabled: "{{ true if target.type == 'snowflake' else false }}" event: +column_types: - flow_id: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" - campaign_id: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" + flow_id: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" + campaign_id: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" diff --git a/models/intermediate/int__daily_klaviyo_user_metrics.sql b/models/intermediate/int__daily_klaviyo_user_metrics.sql index 44781a6..3615b01 100644 --- a/models/intermediate/int__daily_klaviyo_user_metrics.sql +++ b/models/intermediate/int__daily_klaviyo_user_metrics.sql @@ -6,7 +6,7 @@ with events as ( ), pivot_out_events as ( select - cast( {{ dbt_utils.date_trunc('day', 'occurred_at') }} as date) as date_day, + cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as date_day, person_email as email, last_touch_campaign_id, last_touch_flow_id, diff --git a/models/intermediate/int__daily_shopify_customer_orders.sql b/models/intermediate/int__daily_shopify_customer_orders.sql index 2e43711..9a79e2c 100644 --- a/models/intermediate/int__daily_shopify_customer_orders.sql +++ b/models/intermediate/int__daily_shopify_customer_orders.sql @@ -36,7 +36,7 @@ with orders as ( ), daily_order_metrics as ( select - cast( {{ dbt_utils.date_trunc('day', 'created_timestamp') }} as date) as date_day, + cast( {{ dbt.date_trunc('day', 'created_timestamp') }} as date) as date_day, email, last_touch_campaign_id, last_touch_flow_id, diff --git a/models/intermediate/int__klaviyo_person_rollup.sql b/models/intermediate/int__klaviyo_person_rollup.sql index 522afd7..88a6dd3 100644 --- a/models/intermediate/int__klaviyo_person_rollup.sql +++ b/models/intermediate/int__klaviyo_person_rollup.sql @@ -13,7 +13,7 @@ with persons as ( lower(email) as email, source_relation, {{ fivetran_utils.string_agg("person_id", "', '") }} as person_ids, - {{ fivetran_utils.string_agg("distinct cast(phone_number as " ~ dbt_utils.type_string() ~ ")", "', '") }} as phone_numbers, + {{ fivetran_utils.string_agg("distinct cast(phone_number as " ~ dbt.type_string() ~ ")", "', '") }} as phone_numbers, max( case when person_index = 1 then full_name else null end) as full_name, min(created_at) as first_klaviyo_account_made_at, diff --git a/models/intermediate/int__shopify_customer_rollup.sql b/models/intermediate/int__shopify_customer_rollup.sql index 2c1b153..0a8ee9f 100644 --- a/models/intermediate/int__shopify_customer_rollup.sql +++ b/models/intermediate/int__shopify_customer_rollup.sql @@ -13,8 +13,8 @@ with customers as ( select lower(email) as email, source_relation, - {{ fivetran_utils.string_agg("cast(customer_id as " ~ dbt_utils.type_string() ~ ")", "', '") }} as customer_ids, - {{ fivetran_utils.string_agg("distinct cast(phone as " ~ dbt_utils.type_string() ~ ")", "', '") }} as phone_numbers, + {{ fivetran_utils.string_agg("cast(customer_id as " ~ dbt.type_string() ~ ")", "', '") }} as customer_ids, + {{ fivetran_utils.string_agg("distinct cast(phone as " ~ dbt.type_string() ~ ")", "', '") }} as phone_numbers, max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name, diff --git a/models/shopify_holistic_reporting__orders_attribution.sql b/models/shopify_holistic_reporting__orders_attribution.sql index f0eb67f..8d50c7a 100644 --- a/models/shopify_holistic_reporting__orders_attribution.sql +++ b/models/shopify_holistic_reporting__orders_attribution.sql @@ -59,7 +59,7 @@ with orders as ( from orders left join events on lower(orders.email) = lower(events.person_email) - and {{ dbt_utils.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= ( + and {{ dbt.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= ( case when events.type like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }} else {{ var('klaviyo__email_attribution_lookback') }} end) and orders.created_timestamp > events.occurred_at @@ -98,7 +98,7 @@ with orders as ( last_touch_integration_category, source_relation as shopify_source_relation, klaviyo_source_relation, - {{ dbt_utils.surrogate_key(['order_id', 'source_relation']) }} as unique_order_key + {{ dbt_utils.generate_surrogate_key(['order_id', 'source_relation']) }} as unique_order_key from order_events where event_index = 1 From cb0cd9097db92c153b782b3797d711a28d8f81e1 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:06 -0500 Subject: [PATCH 02/19] Updating dbt version --- dbt_project.yml | 61 +++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/dbt_project.yml b/dbt_project.yml index 099380c..9c6a817 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,46 +1,41 @@ name: 'shopify_holistic_reporting' -version: '0.2.0' +version: '0.3.0' config-version: 2 - -require-dbt-version: [">=1.0.0", "<2.0.0"] - +require-dbt-version: [">=1.3.0", "<2.0.0"] models: shopify_holistic_reporting: +materialized: table +schema: shopify_holistic intermediate: - +materialized: view # can't be ephemeral due to the use of dbt_utils.star() - - + +materialized: view vars: shopify_holistic_reporting: - klaviyo__email_attribution_lookback: 120 # in hours - 5 days -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1 - klaviyo__sms_attribution_lookback: 24 # in hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7 - + klaviyo__email_attribution_lookback: 120 + klaviyo__sms_attribution_lookback: 24 klaviyo__eligible_attribution_events: # default in klaviyo -> https://help.klaviyo.com/hc/en-us/articles/115005248128 - - 'opened email' - - 'clicked email' - - 'clicked sms' + - 'opened email' + - 'clicked email' + - 'clicked sms' - klaviyo__count_metrics: - - 'Active on Site' # default API metrics - - 'Viewed Product' - - 'Ordered Product' # some default Shopify metrics - - 'Placed Order' # there are X 'ordered product' events for every `placed order` purchase event of X products - - 'Refunded Order' # note: klaviyo only tracks FULL refunds (not partial) - - 'Received Email' # default email and sms conversion metrics in Klaviyo - - 'Clicked Email' - - 'Opened Email' - - 'Marked Email as Spam' - - 'Unsubscribed' - - 'Received SMS' - - 'Clicked SMS' - - 'Sent SMS' - - 'Unsubscribed from SMS' + klaviyo__count_metrics: + - 'Active on Site' # default API metrics + - 'Viewed Product' + - 'Ordered Product' # some default Shopify metrics + - 'Placed Order' # there are X 'ordered product' events for every `placed order` purchase event of X products + - 'Refunded Order' # note: klaviyo only tracks FULL refunds (not partial) + - 'Received Email' # default email and sms conversion metrics in Klaviyo + - 'Clicked Email' + - 'Opened Email' + - 'Marked Email as Spam' + - 'Unsubscribed' + - 'Received SMS' + - 'Clicked SMS' + - 'Sent SMS' + - 'Unsubscribed from SMS' klaviyo__sum_revenue_metrics: - - 'Refunded Order' - - 'Placed Order' - - 'Ordered Product' - - 'checkout started' - - 'cancelled order' + - 'Refunded Order' + - 'Placed Order' + - 'Ordered Product' + - 'checkout started' + - 'cancelled order' From 49f803ff893d433eb0fedd874df31c715150c3db Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:08 -0500 Subject: [PATCH 03/19] Updating package dependencies --- packages.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages.yml b/packages.yml index e906992..1c5c292 100644 --- a/packages.yml +++ b/packages.yml @@ -1,6 +1,6 @@ packages: - - package: fivetran/shopify - version: [">=0.6.0", "<0.7.0"] +- package: fivetran/shopify + version: [">=0.6.0", "<0.7.0"] - - package: fivetran/klaviyo - version: [">=0.4.0", "<0.5.0"] \ No newline at end of file +- package: fivetran/klaviyo + version: [">=0.4.0", "<0.5.0"] From 60bbe3ecfd67cc6705568133d64324630a355f9f Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:09 -0500 Subject: [PATCH 04/19] deleting file: .circleci/config.yml --- .circleci/config.yml | 82 -------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index d9ff35b..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,82 +0,0 @@ -version: 2 - -jobs: - build: - docker: - - image: circleci/python:3.7.9-stretch - - steps: - - checkout - - - run: - run: setup_creds - command: | - echo $GCLOUD_SERVICE_KEY | base64 --decode --ignore-garbage > ${HOME}/gcloud-service-key.json - - run: - name: "Setup dbt" - command: | - sudo apt install libsasl2-dev - python3 -m venv venv - . venv/bin/activate - pip install --upgrade pip setuptools - pip install -r integration_tests/requirements.txt - mkdir -p ~/.dbt - cp integration_tests/ci/sample.profiles.yml ~/.dbt/profiles.yml - - run: - name: "Run Tests - BigQuery" - environment: - GCLOUD_SERVICE_KEY_PATH: "/home/circleci/gcloud-service-key.json" - - command: | - . venv/bin/activate - echo `pwd` - cd integration_tests - dbt deps - dbt seed --target bigquery --full-refresh - dbt run --target bigquery --full-refresh - dbt run --target bigquery - dbt test --target bigquery - - run: - name: "Run Tests - Postgres" - command: | - . venv/bin/activate - echo `pwd` - cd integration_tests - dbt deps - dbt seed --target postgres --full-refresh - dbt run --target postgres --full-refresh - dbt run --target postgres - dbt test --target postgres - - run: - name: "Run Tests - Redshift" - command: | - . venv/bin/activate - echo `pwd` - cd integration_tests - dbt deps - dbt seed --target redshift --full-refresh - dbt run --target redshift --full-refresh - dbt run --target redshift - dbt test --target redshift - - run: - name: "Run Tests - Snowflake" - command: | - . venv/bin/activate - echo `pwd` - cd integration_tests - dbt deps - dbt seed --target snowflake --full-refresh - dbt run --target snowflake --full-refresh - dbt run --target snowflake - dbt test --target snowflake - - run: - name: "Run Tests - Spark" - command: | - . venv/bin/activate - echo `pwd` - cd integration_tests - dbt deps - dbt seed --target spark --full-refresh - dbt run --target spark --full-refresh - dbt run --target spark - dbt test --target spark \ No newline at end of file From beddf8bd1a39a8f57270ec26f351b7b3483b5538 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:09 -0500 Subject: [PATCH 05/19] deleting file: integration_tests/requirements.txt --- integration_tests/requirements.txt | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 integration_tests/requirements.txt diff --git a/integration_tests/requirements.txt b/integration_tests/requirements.txt deleted file mode 100644 index d6cb3a4..0000000 --- a/integration_tests/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -dbt-snowflake>=1.0.0,<2.0.0 -dbt-bigquery>=1.0.0,<2.0.0 -dbt-redshift>=1.0.0,<2.0.0 -dbt-postgres>=1.0.0,<2.0.0 -dbt-spark>=1.0.0,<2.0.0 -dbt-spark[PyHive]>=1.0.0,<2.0.0 \ No newline at end of file From 6c12de91b34897dfa4a3bd24ddeeaaac54bd7b91 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:10 -0500 Subject: [PATCH 06/19] deleting file: integration_tests/ci/sample.profiles.yml --- integration_tests/ci/sample.profiles.yml | 59 ------------------------ 1 file changed, 59 deletions(-) delete mode 100644 integration_tests/ci/sample.profiles.yml diff --git a/integration_tests/ci/sample.profiles.yml b/integration_tests/ci/sample.profiles.yml deleted file mode 100644 index 270727b..0000000 --- a/integration_tests/ci/sample.profiles.yml +++ /dev/null @@ -1,59 +0,0 @@ - -# HEY! This file is used in the Shopify Holistic Reporting integrations tests with CircleCI. -# You should __NEVER__ check credentials into version control. Thanks for reading :) - -config: - send_anonymous_usage_stats: False - use_colors: True - -integration_tests: - target: snowflake - outputs: - redshift: - type: redshift - host: "{{ env_var('CI_REDSHIFT_DBT_HOST') }}" - user: "{{ env_var('CI_REDSHIFT_DBT_USER') }}" - pass: "{{ env_var('CI_REDSHIFT_DBT_PASS') }}" - dbname: "{{ env_var('CI_REDSHIFT_DBT_DBNAME') }}" - port: 5439 - schema: shopify_holistic_reporting_integration_tests - threads: 8 - postgres: - type: postgres - host: "{{ env_var('CI_POSTGRES_DBT_HOST') }}" - user: "{{ env_var('CI_POSTGRES_DBT_USER') }}" - pass: "{{ env_var('CI_POSTGRES_DBT_PASS') }}" - dbname: "{{ env_var('CI_POSTGRES_DBT_DBNAME') }}" - port: 5432 - schema: shopify_holistic_reporting_integration_tests - threads: 8 - bigquery: - type: bigquery - method: service-account - keyfile: "{{ env_var('GCLOUD_SERVICE_KEY_PATH') }}" - project: 'dbt-package-testing' - schema: shopify_holistic_reporting_integration_tests - threads: 8 - snowflake: - type: snowflake - account: "{{ env_var('CI_SNOWFLAKE_DBT_ACCOUNT') }}" - user: "{{ env_var('CI_SNOWFLAKE_DBT_USER') }}" - password: "{{ env_var('CI_SNOWFLAKE_DBT_PASS') }}" - role: "{{ env_var('CI_SNOWFLAKE_DBT_ROLE') }}" - database: "{{ env_var('CI_SNOWFLAKE_DBT_DATABASE') }}" - warehouse: "{{ env_var('CI_SNOWFLAKE_DBT_WAREHOUSE') }}" - schema: shopify_holistic_reporting_integration_tests - threads: 8 - spark: - type: spark - method: http - schema: shopify_holistic_reporting_integration_tests_new - host: "{{ env_var('CI_SPARK_DBT_HOST') }}" - organization: "{{ env_var('CI_SPARK_DBT_ORGANIZATION') }}" - token: "{{ env_var('CI_SPARK_DBT_TOKEN') }}" - cluster: "{{ env_var('CI_SPARK_DBT_CLUSTER') }}" - port: 443 - connect_timeout: 60 - connect_retries: 5 - threads: 4 - \ No newline at end of file From d311f8c77e5153a309c1b4085733d772f5626755 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:10 -0500 Subject: [PATCH 07/19] adding file: integration_tests/requirements.txt --- integration_tests/requirements.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 integration_tests/requirements.txt diff --git a/integration_tests/requirements.txt b/integration_tests/requirements.txt new file mode 100644 index 0000000..87ae0f9 --- /dev/null +++ b/integration_tests/requirements.txt @@ -0,0 +1,7 @@ +dbt-snowflake>=1.3.0,<2.0.0 +dbt-bigquery>=1.3.0,<2.0.0 +dbt-redshift>=1.3.0,<2.0.0 +dbt-postgres>=1.3.0,<2.0.0 +dbt-spark>=1.3.0,<2.0.0 +dbt-spark[PyHive]>=1.3.0,<2.0.0 +dbt-databricks>=1.3.0,<2.0.0 \ No newline at end of file From 2995096161ef281351f3f6c0d9b16aceb0487aff Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:11 -0500 Subject: [PATCH 08/19] adding file: integration_tests/ci/sample.profiles.yml --- integration_tests/ci/sample.profiles.yml | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 integration_tests/ci/sample.profiles.yml diff --git a/integration_tests/ci/sample.profiles.yml b/integration_tests/ci/sample.profiles.yml new file mode 100644 index 0000000..f524bd8 --- /dev/null +++ b/integration_tests/ci/sample.profiles.yml @@ -0,0 +1,54 @@ + +# HEY! This file is used in the dbt package integrations tests with CircleCI. +# You should __NEVER__ check credentials into version control. Thanks for reading :) + +config: + send_anonymous_usage_stats: False + use_colors: True + +integration_tests: + target: redshift + outputs: + redshift: + type: redshift + host: "{{ env_var('CI_REDSHIFT_DBT_HOST') }}" + user: "{{ env_var('CI_REDSHIFT_DBT_USER') }}" + pass: "{{ env_var('CI_REDSHIFT_DBT_PASS') }}" + dbname: "{{ env_var('CI_REDSHIFT_DBT_DBNAME') }}" + port: 5439 + schema: + threads: 8 + bigquery: + type: bigquery + method: service-account-json + project: 'dbt-package-testing' + schema: + threads: 8 + keyfile_json: "{{ env_var('GCLOUD_SERVICE_KEY') | as_native }}" + snowflake: + type: snowflake + account: "{{ env_var('CI_SNOWFLAKE_DBT_ACCOUNT') }}" + user: "{{ env_var('CI_SNOWFLAKE_DBT_USER') }}" + password: "{{ env_var('CI_SNOWFLAKE_DBT_PASS') }}" + role: "{{ env_var('CI_SNOWFLAKE_DBT_ROLE') }}" + database: "{{ env_var('CI_SNOWFLAKE_DBT_DATABASE') }}" + warehouse: "{{ env_var('CI_SNOWFLAKE_DBT_WAREHOUSE') }}" + schema: + threads: 8 + postgres: + type: postgres + host: "{{ env_var('CI_POSTGRES_DBT_HOST') }}" + user: "{{ env_var('CI_POSTGRES_DBT_USER') }}" + pass: "{{ env_var('CI_POSTGRES_DBT_PASS') }}" + dbname: "{{ env_var('CI_POSTGRES_DBT_DBNAME') }}" + port: 5432 + schema: + threads: 8 + databricks: + catalog: null + host: "{{ env_var('CI_DATABRICKS_DBT_HOST') }}" + http_path: "{{ env_var('CI_DATABRICKS_DBT_HTTP_PATH') }}" + schema: + threads: 2 + token: "{{ env_var('CI_DATABRICKS_DBT_TOKEN') }}" + type: databricks \ No newline at end of file From 1eb5d59b301571683badd4877076bac4e4bc5fe9 Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:11 -0500 Subject: [PATCH 09/19] adding file: .buildkite/pipeline.yml --- .buildkite/pipeline.yml | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .buildkite/pipeline.yml diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml new file mode 100644 index 0000000..b84fe04 --- /dev/null +++ b/.buildkite/pipeline.yml @@ -0,0 +1,73 @@ +steps: + - label: ":postgres: Run Tests - Postgres" + key: "run-dbt-postgres" + plugins: + - docker#v3.13.0: + image: "python:3.8" + shell: [ "/bin/bash", "-e", "-c" ] + environment: + - "BASH_ENV=/tmp/.bashrc" + - "CI_POSTGRES_DBT_DBNAME" + - "CI_POSTGRES_DBT_HOST" + - "CI_POSTGRES_DBT_PASS" + - "CI_POSTGRES_DBT_USER" + commands: | + bash .buildkite/scripts/run_models.sh postgres + + - label: ":snowflake-db: Run Tests - Snowflake" + key: "run_dbt_snowflake" + plugins: + - docker#v3.13.0: + image: "python:3.8" + shell: [ "/bin/bash", "-e", "-c" ] + environment: + - "BASH_ENV=/tmp/.bashrc" + - "CI_SNOWFLAKE_DBT_ACCOUNT" + - "CI_SNOWFLAKE_DBT_DATABASE" + - "CI_SNOWFLAKE_DBT_PASS" + - "CI_SNOWFLAKE_DBT_ROLE" + - "CI_SNOWFLAKE_DBT_USER" + - "CI_SNOWFLAKE_DBT_WAREHOUSE" + commands: | + bash .buildkite/scripts/run_models.sh snowflake + + - label: ":gcloud: Run Tests - BigQuery" + key: "run_dbt_bigquery" + plugins: + - docker#v3.13.0: + image: "python:3.8" + shell: [ "/bin/bash", "-e", "-c" ] + environment: + - "BASH_ENV=/tmp/.bashrc" + - "GCLOUD_SERVICE_KEY" + commands: | + bash .buildkite/scripts/run_models.sh bigquery + + - label: ":amazon-redshift: Run Tests - Redshift" + key: "run_dbt_redshift" + plugins: + - docker#v3.13.0: + image: "python:3.8" + shell: [ "/bin/bash", "-e", "-c" ] + environment: + - "BASH_ENV=/tmp/.bashrc" + - "CI_REDSHIFT_DBT_DBNAME" + - "CI_REDSHIFT_DBT_HOST" + - "CI_REDSHIFT_DBT_PASS" + - "CI_REDSHIFT_DBT_USER" + commands: | + bash .buildkite/scripts/run_models.sh redshift + + - label: ":upside_down_face: Run Tests - Databricks" + key: "run_dbt_databricks" + plugins: + - docker#v3.13.0: + image: "python:3.8" + shell: [ "/bin/bash", "-e", "-c" ] + environment: + - "BASH_ENV=/tmp/.bashrc" + - "CI_DATABRICKS_DBT_HOST" + - "CI_DATABRICKS_DBT_HTTP_PATH" + - "CI_DATABRICKS_DBT_TOKEN" + commands: | + bash .buildkite/scripts/run_models.sh databricks \ No newline at end of file From e5ed445a66fe227b9e1f4487c10eddbc1b9a891d Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:11 -0500 Subject: [PATCH 10/19] adding file: .buildkite/scripts/run_models.sh --- .buildkite/scripts/run_models.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .buildkite/scripts/run_models.sh diff --git a/.buildkite/scripts/run_models.sh b/.buildkite/scripts/run_models.sh new file mode 100644 index 0000000..a18ae39 --- /dev/null +++ b/.buildkite/scripts/run_models.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +apt-get update +apt-get install libsasl2-dev + +python3 -m venv venv +. venv/bin/activate +pip install --upgrade pip setuptools +pip install -r integration_tests/requirements.txt +mkdir -p ~/.dbt +cp integration_tests/ci/sample.profiles.yml ~/.dbt/profiles.yml + +db=$1 +echo `pwd` +cd integration_tests +dbt deps +dbt seed --target "$db" --full-refresh +dbt run --target "$db" --full-refresh +dbt test --target "$db" +## UPDATE FOR VARS HERE, IF NO VARS, PLEASE REMOVE +dbt run --vars '{apple_search_ads__using_search_terms: True}' --target "$db" --full-refresh +dbt test --target "$db" +### END VARS CHUNK, REMOVE IF NOT USING \ No newline at end of file From 14d4e06bd6e58ef269a13b769c14e75e0518a1da Mon Sep 17 00:00:00 2001 From: Sheri Nguyen <94874400+fivetran-sheringuyen@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:40:12 -0500 Subject: [PATCH 11/19] adding file: .buildkite/hooks/pre-command --- .buildkite/hooks/pre-command | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .buildkite/hooks/pre-command diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command new file mode 100644 index 0000000..04c85c0 --- /dev/null +++ b/.buildkite/hooks/pre-command @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +# Export secrets for Docker containers. +# Restrict exposing secrets only to the steps that need them +export GCLOUD_SERVICE_KEY=$(gcloud secrets versions access latest --secret="GCLOUD_SERVICE_KEY" --project="dbt-package-testing-363917") +export CI_POSTGRES_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_HOST" --project="dbt-package-testing-363917") +export CI_POSTGRES_DBT_USER=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_USER" --project="dbt-package-testing-363917") +export CI_POSTGRES_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_PASS" --project="dbt-package-testing-363917") +export CI_POSTGRES_DBT_DBNAME=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_DBNAME" --project="dbt-package-testing-363917") +export CI_REDSHIFT_DBT_DBNAME=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_DBNAME" --project="dbt-package-testing-363917") +export CI_REDSHIFT_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_HOST" --project="dbt-package-testing-363917") +export CI_REDSHIFT_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_PASS" --project="dbt-package-testing-363917") +export CI_REDSHIFT_DBT_USER=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_USER" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_ACCOUNT=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_ACCOUNT" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_DATABASE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_DATABASE" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_PASS" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_ROLE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_ROLE" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_USER=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_USER" --project="dbt-package-testing-363917") +export CI_SNOWFLAKE_DBT_WAREHOUSE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_WAREHOUSE" --project="dbt-package-testing-363917") +export CI_DATABRICKS_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_HOST" --project="dbt-package-testing-363917") +export CI_DATABRICKS_DBT_HTTP_PATH=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_HTTP_PATH" --project="dbt-package-testing-363917") +export CI_DATABRICKS_DBT_TOKEN=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_TOKEN" --project="dbt-package-testing-363917") \ No newline at end of file From 2ad17691a08f92085b84bf93a40a3d8b6be55b90 Mon Sep 17 00:00:00 2001 From: Avinash Kunnath Date: Wed, 26 Oct 2022 19:50:14 -0700 Subject: [PATCH 12/19] Buildkite integration and dbt package compatibility updates --- .buildkite/scripts/run_models.sh | 6 +--- CHANGELOG.md | 40 ++++++++++++++++++++++++ README.md | 27 ++++++++++++++-- integration_tests/ci/sample.profiles.yml | 10 +++--- integration_tests/dbt_project.yml | 13 ++++---- packages.yml | 4 +-- 6 files changed, 80 insertions(+), 20 deletions(-) diff --git a/.buildkite/scripts/run_models.sh b/.buildkite/scripts/run_models.sh index a18ae39..5d805b9 100644 --- a/.buildkite/scripts/run_models.sh +++ b/.buildkite/scripts/run_models.sh @@ -16,8 +16,4 @@ cd integration_tests dbt deps dbt seed --target "$db" --full-refresh dbt run --target "$db" --full-refresh -dbt test --target "$db" -## UPDATE FOR VARS HERE, IF NO VARS, PLEASE REMOVE -dbt run --vars '{apple_search_ads__using_search_terms: True}' --target "$db" --full-refresh -dbt test --target "$db" -### END VARS CHUNK, REMOVE IF NOT USING \ No newline at end of file +dbt test --target "$db" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 437a5ee..f3d6ab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,43 @@ +# dbt_shopify_holistic_reporting v0.3.0 + +## 🚨 Breaking Changes 🚨: +[PR #11](https://github.com/fivetran/dbt_shopify_holistic_reporting/pull/11/) includes the following breaking changes: +- Dispatch update for dbt-utils to dbt-core cross-db macros migration. Specifically `{{ dbt_utils. }}` have been updated to `{{ dbt. }}` for the below macros: + - `any_value` + - `bool_or` + - `cast_bool_to_text` + - `concat` + - `date_trunc` + - `dateadd` + - `datediff` + - `escape_single_quotes` + - `except` + - `hash` + - `intersect` + - `last_day` + - `length` + - `listagg` + - `position` + - `replace` + - `right` + - `safe_cast` + - `split_part` + - `string_literal` + - `type_bigint` + - `type_float` + - `type_int` + - `type_numeric` + - `type_string` + - `type_timestamp` + - `array_append` + - `array_concat` + - `array_construct` +- For `current_timestamp` and `current_timestamp_in_utc` macros, the dispatch AND the macro names have been updated to the below, respectively: + - `dbt.current_timestamp_backcompat` + - `dbt.current_timestamp_in_utc_backcompat` +- `dbt_utils.surrogate_key` has also been updated to `dbt_utils.generate_surrogate_key`. Since the method for creating surrogate keys differ, we suggest all users do a `full-refresh` for the most accurate data. For more information, please refer to dbt-utils [release notes](https://github.com/dbt-labs/dbt-utils/releases) for this update. +- Dependencies on `fivetran/fivetran_utils` have been upgraded, previously `[">=0.3.0", "<0.4.0"]` now `[">=0.4.0", "<0.5.0"]`. + # dbt_shopify_holistic_reporting v0.2.0 ## Bug Fixes - Adjusts the incremental logic in the `shopify_holistic_reporting__orders_attribution` model. Previously, on incremental runs, this model transformed only newly-_created_ orders, comparing each order's `created_timestamp` to the `max(created_timestamp)` in the model. Now, the model will also transform newly-_updated_ orders and use `updated_timestamp` instead of `created_timestamp` to determine if an order should be included in an incremental run ([#9](https://github.com/fivetran/dbt_shopify_holistic_reporting/pull/9)). diff --git a/README.md b/README.md index 2d866a0..84db5fe 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,15 @@ -[![Apache License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +

+ + + + + + + + +

+ # Shopify Holistic Reporting This package builds off of the [Shopify dbt package](https://github.com/fivetran/dbt_shopify) to weave together your Shopify e-commerce data with insights from marketing connectors. Currently, this package supports combining Shopify with email and SMS marketing data from Fivetran's [Klaviyo dbt package](https://github.com/fivetran/dbt_klaviyo). @@ -31,7 +42,7 @@ Include in your `packages.yml` ```yaml packages: - package: fivetran/shopify_holistic_reporting - version: [">=0.1.0", "<0.2.0"] + version: [">=0.3.0", "<0.4.0"] ``` ## Configurations @@ -76,6 +87,18 @@ models: Models from the individual [Shopify](https://github.com/fivetran/dbt_shopify/#changing-the-build-schema) and [Klaviyo](https://github.com/fivetran/dbt_klaviyo/#changing-the-build-schema) packages will be written their respective schemas. +# 🔍 Does this package have dependencies? +This dbt package is dependent on the following dbt packages. Please be aware that these dependencies are installed by default within this package. For more information on the following packages, refer to the [dbt hub](https://hub.getdbt.com/) site. +> IMPORTANT: If you have any of these dependent packages in your own `packages.yml` file, we highly recommend that you remove them from your root `packages.yml` to avoid package version conflicts. +```yml +packages: + - package: fivetran/fivetran_utils + version: [">=0.4.0", "<0.5.0"] + + - package: dbt-labs/dbt_utils + version: [">=1.0.0", "<2.0.0"] +``` + ## Contributions diff --git a/integration_tests/ci/sample.profiles.yml b/integration_tests/ci/sample.profiles.yml index f524bd8..e76547a 100644 --- a/integration_tests/ci/sample.profiles.yml +++ b/integration_tests/ci/sample.profiles.yml @@ -16,13 +16,13 @@ integration_tests: pass: "{{ env_var('CI_REDSHIFT_DBT_PASS') }}" dbname: "{{ env_var('CI_REDSHIFT_DBT_DBNAME') }}" port: 5439 - schema: + schema: shopify_holistic_reporting_integration_tests threads: 8 bigquery: type: bigquery method: service-account-json project: 'dbt-package-testing' - schema: + schema: shopify_holistic_reporting_integration_tests threads: 8 keyfile_json: "{{ env_var('GCLOUD_SERVICE_KEY') | as_native }}" snowflake: @@ -33,7 +33,7 @@ integration_tests: role: "{{ env_var('CI_SNOWFLAKE_DBT_ROLE') }}" database: "{{ env_var('CI_SNOWFLAKE_DBT_DATABASE') }}" warehouse: "{{ env_var('CI_SNOWFLAKE_DBT_WAREHOUSE') }}" - schema: + schema: shopify_holistic_reporting_integration_tests threads: 8 postgres: type: postgres @@ -42,13 +42,13 @@ integration_tests: pass: "{{ env_var('CI_POSTGRES_DBT_PASS') }}" dbname: "{{ env_var('CI_POSTGRES_DBT_DBNAME') }}" port: 5432 - schema: + schema: shopify_holistic_reporting_integration_tests threads: 8 databricks: catalog: null host: "{{ env_var('CI_DATABRICKS_DBT_HOST') }}" http_path: "{{ env_var('CI_DATABRICKS_DBT_HTTP_PATH') }}" - schema: + schema: shopify_holistic_reporting_integration_tests threads: 2 token: "{{ env_var('CI_DATABRICKS_DBT_TOKEN') }}" type: databricks \ No newline at end of file diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 18c4240..8db6d5a 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -1,5 +1,5 @@ name: 'shopify_holistic_reporting_integration_tests' -version: '0.2.0' +version: '0.3.0' profile: 'integration_tests' config-version: 2 @@ -65,9 +65,10 @@ vars: - 'Ordered Product' - 'checkout started' - 'cancelled order' + dispatch: - macro_namespace: dbt_utils - search_order: ['shopify_holistic_reporting','!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!_utils', 'dbt_utils'] + search_order: ['shopify_holistic_reporting', 'spark_utils', 'dbt_utils'] seeds: shopify_holistic_reporting_integration_tests: @@ -138,15 +139,15 @@ seeds: # klaviyo person: +column_types: - phone_number: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" + phone_number: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" flow: +enabled: "{{ true if target.type != 'snowflake' else false }}" +quote_columns: "{{ true if target.type == 'redshift' else false }}" +column_types: - trigger: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" + trigger: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" flow_snowflake: +enabled: "{{ true if target.type == 'snowflake' else false }}" event: +column_types: - flow_id: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" - campaign_id: "{{ 'string' if target.type in ('bigquery', '!!!!!!! REPLACE 'spark' WITH 'spark','databricks' OR EQUIV !!!!!!!') else 'varchar' }}" + flow_id: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" + campaign_id: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" diff --git a/packages.yml b/packages.yml index 1c5c292..ccc7347 100644 --- a/packages.yml +++ b/packages.yml @@ -1,6 +1,6 @@ packages: - package: fivetran/shopify - version: [">=0.6.0", "<0.7.0"] + version: [">=0.7.0", "<0.8.0"] - package: fivetran/klaviyo - version: [">=0.4.0", "<0.5.0"] + version: [">=0.5.0", "<0.6.0"] From 42f0bbd1a4ac48333a79c103043605a3bdfee798 Mon Sep 17 00:00:00 2001 From: Avinash Kunnath Date: Thu, 27 Oct 2022 14:03:40 -0700 Subject: [PATCH 13/19] Packages updated --- packages.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages.yml b/packages.yml index ccc7347..53e7101 100644 --- a/packages.yml +++ b/packages.yml @@ -1,6 +1,15 @@ packages: -- package: fivetran/shopify - version: [">=0.7.0", "<0.8.0"] +# - package: fivetran/shopify +# version: [">=0.7.0", "<0.8.0"] -- package: fivetran/klaviyo - version: [">=0.5.0", "<0.6.0"] +# - package: fivetran/klaviyo +# version: [">=0.5.0", "<0.6.0"] + +# IMPORTANT: MAKE SURE TO REVERT BACK BEFORE MERGING +- git: https://github.com/fivetran/dbt_shopify.git + revision: MagicBot/dbt-utils-cross-db-migration + warn-unpinned: false + +- git: https://github.com/fivetran/dbt_klaviyo.git + revision: MagicBot/dbt-utils-cross-db-migration + warn-unpinned: false \ No newline at end of file From b988fbf54fec2fed328c6b3bb7a193738a35d53e Mon Sep 17 00:00:00 2001 From: Avinash Kunnath Date: Thu, 27 Oct 2022 15:08:44 -0700 Subject: [PATCH 14/19] remove databricks conditional from flow --- integration_tests/dbt_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 8db6d5a..2af9d69 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -144,7 +144,7 @@ seeds: +enabled: "{{ true if target.type != 'snowflake' else false }}" +quote_columns: "{{ true if target.type == 'redshift' else false }}" +column_types: - trigger: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" + trigger: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" flow_snowflake: +enabled: "{{ true if target.type == 'snowflake' else false }}" event: From 5817fd77b37e8bedebbb63e0be1328ff119b67aa Mon Sep 17 00:00:00 2001 From: Avinash Kunnath Date: Thu, 27 Oct 2022 16:07:27 -0700 Subject: [PATCH 15/19] reversions --- README.md | 6 ++++++ integration_tests/dbt_project.yml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84db5fe..3ff6de0 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,12 @@ This dbt package is dependent on the following dbt packages. Please be aware tha > IMPORTANT: If you have any of these dependent packages in your own `packages.yml` file, we highly recommend that you remove them from your root `packages.yml` to avoid package version conflicts. ```yml packages: + - package: fivetran/shopify + version: [">=0.7.0", "<0.8.0"] + + - package: fivetran/klaviyo + version: [">=0.5.0", "<0.6.0"] + - package: fivetran/fivetran_utils version: [">=0.4.0", "<0.5.0"] diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 2af9d69..8db6d5a 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -144,7 +144,7 @@ seeds: +enabled: "{{ true if target.type != 'snowflake' else false }}" +quote_columns: "{{ true if target.type == 'redshift' else false }}" +column_types: - trigger: "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}" + trigger: "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}" flow_snowflake: +enabled: "{{ true if target.type == 'snowflake' else false }}" event: From 7645382d8d834b631d61d38a4ef199018050a928 Mon Sep 17 00:00:00 2001 From: Avinash Kunnath Date: Fri, 28 Oct 2022 10:34:32 -0700 Subject: [PATCH 16/19] Docs generation --- docs/catalog.json | 2 +- docs/index.html | 24 ++++++++++++------------ docs/manifest.json | 2 +- docs/run_results.json | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/catalog.json b/docs/catalog.json index 4d0a15a..1040d0d 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.2.0", "generated_at": "2022-10-13T23:21:15.659758Z", "invocation_id": "09cf5607-4d3b-4819-bd09-baa959605110", "env": {}}, "nodes": {"model.klaviyo_source.stg_klaviyo__event_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__event_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "STRING", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "INT64", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "STRING", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "STRING", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "STRING", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "STRING", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "STRING", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "STRING", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "INT64", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "INT64", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "INT64", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "INT64", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "INT64", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "INT64", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "INT64", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "INT64", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "INT64", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "INT64", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "INT64", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "INT64", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "INT64", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "INT64", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "INT64", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "INT64", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "STRING", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "INT64", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "INT64", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "INT64", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "INT64", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "INT64", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "STRING", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "INT64", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "INT64", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "INT64", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "INT64", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "INT64", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "INT64", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "INT64", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "INT64", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "INT64", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "STRING", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "STRING", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "STRING", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "INT64", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "INT64", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "INT64", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "INT64", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "INT64", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "INT64", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "INT64", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "INT64", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "INT64", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "INT64", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "INT64", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "INT64", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "INT64", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "INT64", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "INT64", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "INT64", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "INT64", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "INT64", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "INT64", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "INT64", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "INT64", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "INT64", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "INT64", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "STRING", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "INT64", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "INT64", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "INT64", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "INT64", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "INT64", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "INT64", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "INT64", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "INT64", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "INT64", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "INT64", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "INT64", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "INT64", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "INT64", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "INT64", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "INT64", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "INT64", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "INT64", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "INT64", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "INT64", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "INT64", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "INT64", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "INT64", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "INT64", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "INT64", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "INT64", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "INT64", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "INT64", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "INT64", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, "model.klaviyo_source.stg_klaviyo__person": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__person", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"person_id": {"type": "STRING", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "STRING", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "INT64", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "STRING", "index": 4, "name": "city", "comment": null}, "country": {"type": "STRING", "index": 5, "name": "country", "comment": null}, "zip": {"type": "INT64", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "STRING", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "STRING", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "STRING", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "FLOAT64", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "FLOAT64", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "INT64", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "STRING", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "STRING", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "STRING", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "INT64", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "STRING", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "STRING", "index": 18, "name": "source_relation", "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": 385.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.klaviyo_source.stg_klaviyo__person"}, "model.klaviyo_source.stg_klaviyo__event": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__event", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"variation_id": {"type": "STRING", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "TIMESTAMP", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "INT64", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "STRING", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "STRING", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "STRING", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "STRING", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "STRING", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "INT64", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "DATE", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "STRING", "index": 15, "name": "unique_event_id", "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": 312.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.klaviyo_source.stg_klaviyo__event"}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__metric_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "name": {"type": "STRING", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "STRING", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "STRING", "index": 4, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "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.klaviyo_source.stg_klaviyo__metric_tmp"}, "model.klaviyo_source.stg_klaviyo__campaign": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__campaign", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"campaign_type": {"type": "STRING", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "STRING", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "STRING", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "STRING", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "STRING", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "BOOL", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "STRING", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "STRING", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "STRING", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "STRING", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "INT64", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "STRING", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "STRING", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "STRING", "index": 15, "name": "source_relation", "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": 335.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.klaviyo_source.stg_klaviyo__campaign"}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__campaign_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "STRING", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "INT64", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "BOOL", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "STRING", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "STRING", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "STRING", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "STRING", "index": 8, "name": "subject", "comment": null}, "name": {"type": "STRING", "index": 9, "name": "name", "comment": null}, "status": {"type": "STRING", "index": 10, "name": "status", "comment": null}, "created": {"type": "STRING", "index": 11, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "STRING", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "STRING", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "STRING", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 17, "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.klaviyo_source.stg_klaviyo__campaign_tmp"}, "model.klaviyo_source.stg_klaviyo__flow": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__flow", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"created_at": {"type": "STRING", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "STRING", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "STRING", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "STRING", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "STRING", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "STRING", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "STRING", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "STRING", "index": 8, "name": "source_relation", "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": 592.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.klaviyo_source.stg_klaviyo__flow"}, "model.klaviyo_source.stg_klaviyo__integration": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__integration", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"category": {"type": "STRING", "index": 1, "name": "category", "comment": null}, "integration_id": {"type": "STRING", "index": 2, "name": "integration_id", "comment": null}, "integration_name": {"type": "STRING", "index": 3, "name": "integration_name", "comment": null}, "source_relation": {"type": "STRING", "index": 4, "name": "source_relation", "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": 58.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.klaviyo_source.stg_klaviyo__integration"}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__flow_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "name": {"type": "STRING", "index": 2, "name": "name", "comment": null}, "status": {"type": "STRING", "index": 3, "name": "status", "comment": null}, "created": {"type": "STRING", "index": 4, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "STRING", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "STRING", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "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.klaviyo_source.stg_klaviyo__flow_tmp"}, "model.klaviyo_source.stg_klaviyo__metric": {"metadata": {"type": "table", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__metric", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"created_at": {"type": "STRING", "index": 1, "name": "created_at", "comment": null}, "metric_id": {"type": "STRING", "index": 2, "name": "metric_id", "comment": null}, "integration_id": {"type": "STRING", "index": 3, "name": "integration_id", "comment": null}, "metric_name": {"type": "STRING", "index": 4, "name": "metric_name", "comment": null}, "updated_at": {"type": "STRING", "index": 5, "name": "updated_at", "comment": null}, "source_relation": {"type": "STRING", "index": 6, "name": "source_relation", "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": 167.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.klaviyo_source.stg_klaviyo__metric"}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__person_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated": {"type": "STRING", "index": 2, "name": "updated", "comment": null}, "created": {"type": "STRING", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "STRING", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "STRING", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "STRING", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "INT64", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "INT64", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "STRING", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "INT64", "index": 11, "name": "organization", "comment": null}, "region": {"type": "STRING", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "FLOAT64", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "FLOAT64", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "STRING", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "STRING", "index": 16, "name": "country", "comment": null}, "zip": {"type": "INT64", "index": 17, "name": "zip", "comment": null}, "city": {"type": "STRING", "index": 18, "name": "city", "comment": null}, "email": {"type": "STRING", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "STRING", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "STRING", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "BOOL", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "STRING", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "STRING", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "STRING", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "STRING", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "INT64", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "INT64", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "INT64", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "INT64", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "INT64", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "INT64", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "INT64", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "INT64", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "INT64", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "INT64", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "INT64", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "INT64", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "INT64", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "INT64", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "INT64", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "INT64", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "STRING", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "INT64", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "INT64", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "INT64", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "STRING", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "INT64", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "INT64", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "INT64", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "INT64", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "DATE", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "INT64", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "INT64", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "INT64", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "INT64", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "INT64", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "INT64", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "INT64", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "INT64", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "INT64", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "INT64", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "INT64", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "INT64", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "INT64", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "INT64", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "INT64", "index": 68, "name": "custom_landingpage_tag", "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.klaviyo_source.stg_klaviyo__person_tmp"}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_klaviyo", "name": "stg_klaviyo__integration_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "category": {"type": "STRING", "index": 2, "name": "category", "comment": null}, "name": {"type": "STRING", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 5, "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.klaviyo_source.stg_klaviyo__integration_tmp"}, "model.shopify_source.stg_shopify__customer_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__customer_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "STRING", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "STRING", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "STRING", "index": 4, "name": "email", "comment": null}, "phone": {"type": "INT64", "index": 5, "name": "phone", "comment": null}, "state": {"type": "STRING", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "INT64", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "FLOAT64", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "BOOL", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "BOOL", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "BOOL", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "INT64", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 15, "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.shopify_source.stg_shopify__customer_tmp"}, "model.shopify_source.stg_shopify__customer": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__customer", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "BOOL", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "INT64", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "STRING", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "STRING", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "INT64", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "STRING", "index": 8, "name": "last_name", "comment": null}, "orders_count": {"type": "INT64", "index": 9, "name": "orders_count", "comment": null}, "phone": {"type": "INT64", "index": 10, "name": "phone", "comment": null}, "account_state": {"type": "STRING", "index": 11, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "BOOL", "index": 12, "name": "is_tax_exempt", "comment": null}, "total_spent": {"type": "FLOAT64", "index": 13, "name": "total_spent", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 14, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "BOOL", "index": 15, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "STRING", "index": 16, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 518.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.shopify_source.stg_shopify__customer"}, "model.shopify_source.stg_shopify__order_line": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_line", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "INT64", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "BOOL", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "INT64", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "INT64", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "INT64", "index": 8, "name": "index", "comment": null}, "name": {"type": "STRING", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "INT64", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "INT64", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "FLOAT64", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "INT64", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "NUMERIC", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "STRING", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "NUMERIC", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "STRING", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "NUMERIC", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "INT64", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "BOOL", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "STRING", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "BOOL", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "STRING", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "INT64", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "INT64", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "STRING", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "STRING", "index": 27, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 733.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.shopify_source.stg_shopify__order_line"}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_line_refund_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "INT64", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "INT64", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "INT64", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "INT64", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "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.shopify_source.stg_shopify__order_line_refund_tmp"}, "model.shopify_source.stg_shopify__order_line_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_line_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_id": {"type": "INT64", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "INT64", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "INT64", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "INT64", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "STRING", "index": 5, "name": "name", "comment": null}, "title": {"type": "STRING", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "STRING", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "FLOAT64", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "INT64", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "INT64", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "STRING", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "INT64", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "BOOL", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "BOOL", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "BOOL", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "INT64", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "INT64", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "INT64", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 21, "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.shopify_source.stg_shopify__order_line_tmp"}, "model.shopify_source.stg_shopify__product_variant_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__product_variant_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "INT64", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "INT64", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "STRING", "index": 4, "name": "title", "comment": null}, "price": {"type": "INT64", "index": 5, "name": "price", "comment": null}, "sku": {"type": "INT64", "index": 6, "name": "sku", "comment": null}, "position": {"type": "INT64", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "STRING", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "INT64", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "STRING", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "STRING", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "STRING", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "BOOL", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "INT64", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "INT64", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "INT64", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "INT64", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "INT64", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "STRING", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "INT64", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "BOOL", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "INT64", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "STRING", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "INT64", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "STRING", "index": 27, "name": "option_1", "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.shopify_source.stg_shopify__product_variant_tmp"}, "model.shopify_source.stg_shopify__product_variant": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__product_variant", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"variant_id": {"type": "INT64", "index": 1, "name": "variant_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "STRING", "index": 3, "name": "created_timestamp", "comment": null}, "updated_timestamp": {"type": "STRING", "index": 4, "name": "updated_timestamp", "comment": null}, "product_id": {"type": "INT64", "index": 5, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "INT64", "index": 6, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "INT64", "index": 7, "name": "image_id", "comment": null}, "title": {"type": "STRING", "index": 8, "name": "title", "comment": null}, "price": {"type": "INT64", "index": 9, "name": "price", "comment": null}, "sku": {"type": "INT64", "index": 10, "name": "sku", "comment": null}, "position": {"type": "INT64", "index": 11, "name": "position", "comment": null}, "inventory_policy": {"type": "STRING", "index": 12, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "INT64", "index": 13, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 14, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "STRING", "index": 15, "name": "inventory_management", "comment": null}, "is_taxable": {"type": "BOOL", "index": 16, "name": "is_taxable", "comment": null}, "barcode": {"type": "INT64", "index": 17, "name": "barcode", "comment": null}, "grams": {"type": "INT64", "index": 18, "name": "grams", "comment": null}, "inventory_quantity": {"type": "INT64", "index": 19, "name": "inventory_quantity", "comment": null}, "weight": {"type": "INT64", "index": 20, "name": "weight", "comment": null}, "weight_unit": {"type": "STRING", "index": 21, "name": "weight_unit", "comment": null}, "option_1": {"type": "STRING", "index": 22, "name": "option_1", "comment": null}, "option_2": {"type": "INT64", "index": 23, "name": "option_2", "comment": null}, "option_3": {"type": "INT64", "index": 24, "name": "option_3", "comment": null}, "tax_code": {"type": "STRING", "index": 25, "name": "tax_code", "comment": null}, "old_inventory_quantity": {"type": "INT64", "index": 26, "name": "old_inventory_quantity", "comment": null}, "is_requiring_shipping": {"type": "BOOL", "index": 27, "name": "is_requiring_shipping", "comment": null}, "source_relation": {"type": "STRING", "index": 28, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 958.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.shopify_source.stg_shopify__product_variant"}, "model.shopify_source.stg_shopify__transaction": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__transaction", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"transaction_id": {"type": "INT64", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "FLOAT64", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "STRING", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "STRING", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "INT64", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "STRING", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "STRING", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "STRING", "index": 10, "name": "message", "comment": null}, "currency": {"type": "STRING", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "INT64", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "INT64", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "STRING", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "INT64", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "INT64", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "INT64", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "INT64", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "STRING", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "STRING", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "INT64", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "INT64", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "INT64", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "INT64", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "INT64", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "INT64", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "STRING", "index": 27, "name": "status", "comment": null}, "test": {"type": "BOOL", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "INT64", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 30, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 31, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 999.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.shopify_source.stg_shopify__transaction"}, "model.shopify_source.stg_shopify__order_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "note": {"type": "STRING", "index": 2, "name": "note", "comment": null}, "email": {"type": "STRING", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "BOOL", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "STRING", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "FLOAT64", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "INT64", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "FLOAT64", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "STRING", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "STRING", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "STRING", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "STRING", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "STRING", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "STRING", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "STRING", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "STRING", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "STRING", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "STRING", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "STRING", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "STRING", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "INT64", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "STRING", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "STRING", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "STRING", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "STRING", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "STRING", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "STRING", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "STRING", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "STRING", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "STRING", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "STRING", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "STRING", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "STRING", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "STRING", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "STRING", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "INT64", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "STRING", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "STRING", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "STRING", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "INT64", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "INT64", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "INT64", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "INT64", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "INT64", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "STRING", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "TIMESTAMP", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "STRING", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "STRING", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "INT64", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "TIMESTAMP", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "STRING", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "INT64", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "STRING", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "STRING", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "BOOL", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "STRING", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "STRING", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "STRING", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "BOOL", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "STRING", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 66, "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.shopify_source.stg_shopify__order_tmp"}, "model.shopify_source.stg_shopify__order": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_id": {"type": "INT64", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "TIMESTAMP", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "INT64", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "FLOAT64", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "INT64", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "STRING", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "FLOAT64", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "BOOL", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "INT64", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "STRING", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "INT64", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "STRING", "index": 15, "name": "name", "comment": null}, "note": {"type": "STRING", "index": 16, "name": "note", "comment": null}, "number": {"type": "INT64", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "INT64", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "INT64", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "TIMESTAMP", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "STRING", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "STRING", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "STRING", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "STRING", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "INT64", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "STRING", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "STRING", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "STRING", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "STRING", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "STRING", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "STRING", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "STRING", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "STRING", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "STRING", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "STRING", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "STRING", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "STRING", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "STRING", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "STRING", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "STRING", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "STRING", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "STRING", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "INT64", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "STRING", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "STRING", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "BOOL", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "STRING", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "STRING", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "STRING", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "STRING", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "STRING", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "STRING", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "STRING", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "STRING", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "STRING", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "STRING", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "STRING", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "STRING", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "STRING", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "STRING", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "INT64", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "STRING", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "BOOL", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "STRING", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 68, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3856.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.shopify_source.stg_shopify__order"}, "model.shopify_source.stg_shopify__refund": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__refund", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "STRING", "index": 2, "name": "created_at", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "note": {"type": "STRING", "index": 4, "name": "note", "comment": null}, "order_id": {"type": "INT64", "index": 5, "name": "order_id", "comment": null}, "processed_at": {"type": "STRING", "index": 6, "name": "processed_at", "comment": null}, "restock": {"type": "BOOL", "index": 7, "name": "restock", "comment": null}, "user_id": {"type": "INT64", "index": 8, "name": "user_id", "comment": null}, "source_relation": {"type": "STRING", "index": 9, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 441.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.shopify_source.stg_shopify__refund"}, "model.shopify_source.stg_shopify__product_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__product_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "title": {"type": "STRING", "index": 2, "name": "title", "comment": null}, "handle": {"type": "STRING", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "STRING", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "STRING", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "TIMESTAMP", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "STRING", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 11, "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.shopify_source.stg_shopify__product_tmp"}, "model.shopify_source.stg_shopify__transaction_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__transaction_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "FLOAT64", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "STRING", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "STRING", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "STRING", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "INT64", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "STRING", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "STRING", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "STRING", "index": 11, "name": "message", "comment": null}, "currency": {"type": "STRING", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "INT64", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "INT64", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "STRING", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "STRING", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "INT64", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "INT64", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "INT64", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "INT64", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "INT64", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "INT64", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "STRING", "index": 23, "name": "status", "comment": null}, "test": {"type": "BOOL", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "INT64", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "INT64", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "INT64", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "INT64", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "INT64", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "STRING", "index": 31, "name": "receipt", "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.shopify_source.stg_shopify__transaction_tmp"}, "model.shopify_source.stg_shopify__order_line_refund": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_line_refund", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "order_line_refund_id": {"type": "INT64", "index": 2, "name": "order_line_refund_id", "comment": null}, "location_id": {"type": "INT64", "index": 3, "name": "location_id", "comment": null}, "order_line_id": {"type": "INT64", "index": 4, "name": "order_line_id", "comment": null}, "subtotal": {"type": "NUMERIC", "index": 5, "name": "subtotal", "comment": null}, "total_tax": {"type": "NUMERIC", "index": 6, "name": "total_tax", "comment": null}, "quantity": {"type": "INT64", "index": 7, "name": "quantity", "comment": null}, "refund_id": {"type": "INT64", "index": 8, "name": "refund_id", "comment": null}, "restock_type": {"type": "INT64", "index": 9, "name": "restock_type", "comment": null}, "source_relation": {"type": "STRING", "index": 10, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 0.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 0.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.shopify_source.stg_shopify__order_line_refund"}, "model.shopify_source.stg_shopify__order_adjustment": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_adjustment", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_adjustment_id": {"type": "INT64", "index": 1, "name": "order_adjustment_id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "INT64", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "FLOAT64", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "STRING", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "STRING", "index": 7, "name": "reason", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 8, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 9, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 426.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.shopify_source.stg_shopify__order_adjustment"}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__order_adjustment_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "INT64", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "FLOAT64", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "STRING", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "STRING", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "INT64", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "INT64", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 10, "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.shopify_source.stg_shopify__order_adjustment_tmp"}, "model.shopify_source.stg_shopify__product": {"metadata": {"type": "table", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__product", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_deleted": {"type": "BOOL", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "STRING", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "INT64", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "STRING", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "TIMESTAMP", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "STRING", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "STRING", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "STRING", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "STRING", "index": 12, "name": "source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 555.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.shopify_source.stg_shopify__product"}, "model.shopify_source.stg_shopify__refund_tmp": {"metadata": {"type": "view", "schema": "dbt_test_stg_shopify", "name": "stg_shopify__refund_tmp", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "STRING", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "STRING", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "STRING", "index": 4, "name": "note", "comment": null}, "restock": {"type": "BOOL", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "INT64", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "INT64", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "INT64", "index": 9, "name": "order_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.shopify_source.stg_shopify__refund_tmp"}, "model.klaviyo.klaviyo__flows": {"metadata": {"type": "table", "schema": "dbt_test_klaviyo", "name": "klaviyo__flows", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"created_at": {"type": "STRING", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "STRING", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "STRING", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "STRING", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "STRING", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "STRING", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "STRING", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "STRING", "index": 8, "name": "source_relation", "comment": null}, "variation_id": {"type": "STRING", "index": 9, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "INT64", "index": 10, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "NUMERIC", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "NUMERIC", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "NUMERIC", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "NUMERIC", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "INT64", "index": 18, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "INT64", "index": 19, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "INT64", "index": 20, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "INT64", "index": 21, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "INT64", "index": 22, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "INT64", "index": 23, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "INT64", "index": 24, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "INT64", "index": 25, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "INT64", "index": 26, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "INT64", "index": 27, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "INT64", "index": 28, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "INT64", "index": 29, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "INT64", "index": 30, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "INT64", "index": 31, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "INT64", "index": 32, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "INT64", "index": 33, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "INT64", "index": 34, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "INT64", "index": 35, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "INT64", "index": 36, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "INT64", "index": 37, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "INT64", "index": 38, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "INT64", "index": 39, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "INT64", "index": 40, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "INT64", "index": 41, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "INT64", "index": 42, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "INT64", "index": 43, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "INT64", "index": 44, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "INT64", "index": 45, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "INT64", "index": 46, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "INT64", "index": 47, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "INT64", "index": 48, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "INT64", "index": 49, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "INT64", "index": 50, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "INT64", "index": 51, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "INT64", "index": 52, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 53, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "INT64", "index": 54, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "INT64", "index": 55, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "INT64", "index": 56, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "INT64", "index": 57, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "INT64", "index": 58, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "INT64", "index": 59, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "INT64", "index": 60, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "INT64", "index": 61, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "INT64", "index": 62, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "INT64", "index": 63, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "INT64", "index": 64, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "INT64", "index": 65, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "INT64", "index": 66, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "INT64", "index": 67, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "flow_variation_key": {"type": "STRING", "index": 68, "name": "flow_variation_key", "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": 660.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.klaviyo.klaviyo__flows"}, "model.klaviyo.klaviyo__person_campaign_flow": {"metadata": {"type": "table", "schema": "dbt_test_klaviyo", "name": "klaviyo__person_campaign_flow", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"person_id": {"type": "STRING", "index": 1, "name": "person_id", "comment": null}, "last_touch_campaign_id": {"type": "STRING", "index": 2, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 3, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 4, "name": "campaign_name", "comment": null}, "flow_name": {"type": "STRING", "index": 5, "name": "flow_name", "comment": null}, "variation_id": {"type": "STRING", "index": 6, "name": "variation_id", "comment": null}, "source_relation": {"type": "STRING", "index": 7, "name": "source_relation", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 8, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 9, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "NUMERIC", "index": 10, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "NUMERIC", "index": 11, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "NUMERIC", "index": 12, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "NUMERIC", "index": 13, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 14, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "INT64", "index": 15, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "INT64", "index": 16, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "INT64", "index": 17, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "INT64", "index": 18, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "INT64", "index": 19, "name": "count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "INT64", "index": 20, "name": "count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "INT64", "index": 21, "name": "count_fulfilled_order", "comment": null}, "count_received_email": {"type": "INT64", "index": 22, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "INT64", "index": 23, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "INT64", "index": 24, "name": "count_opened_email", "comment": null}, "count_bounced_email": {"type": "INT64", "index": 25, "name": "count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "INT64", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "INT64", "index": 27, "name": "count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "INT64", "index": 28, "name": "count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "INT64", "index": 29, "name": "count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "INT64", "index": 30, "name": "count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "INT64", "index": 31, "name": "count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "INT64", "index": 32, "name": "count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "INT64", "index": 33, "name": "count_merged_profile", "comment": null}, "count_received_sms": {"type": "INT64", "index": 34, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "INT64", "index": 35, "name": "count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "INT64", "index": 36, "name": "count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "INT64", "index": 37, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "INT64", "index": 38, "name": "count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "INT64", "index": 39, "name": "count_failed_to_deliver_sms", "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": 644.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.klaviyo.klaviyo__person_campaign_flow"}, "model.klaviyo.klaviyo__events": {"metadata": {"type": "table", "schema": "dbt_test_klaviyo", "name": "klaviyo__events", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"variation_id": {"type": "STRING", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "TIMESTAMP", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "INT64", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "STRING", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "STRING", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "STRING", "index": 8, "name": "person_id", "comment": null}, "uuid": {"type": "STRING", "index": 9, "name": "uuid", "comment": null}, "numeric_value": {"type": "INT64", "index": 10, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 11, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 12, "name": "source_relation", "comment": null}, "occurred_on": {"type": "DATE", "index": 13, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "STRING", "index": 14, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "STRING", "index": 15, "name": "touch_id", "comment": null}, "touch_type": {"type": "STRING", "index": 16, "name": "touch_type", "comment": null}, "type": {"type": "STRING", "index": 17, "name": "type", "comment": null}, "last_touch_campaign_id": {"type": "STRING", "index": 18, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 19, "name": "last_touch_flow_id", "comment": null}, "last_touch_at": {"type": "TIMESTAMP", "index": 20, "name": "last_touch_at", "comment": null}, "last_touch_event_type": {"type": "STRING", "index": 21, "name": "last_touch_event_type", "comment": null}, "last_touch_type": {"type": "STRING", "index": 22, "name": "last_touch_type", "comment": null}, "campaign_name": {"type": "STRING", "index": 23, "name": "campaign_name", "comment": null}, "campaign_type": {"type": "STRING", "index": 24, "name": "campaign_type", "comment": null}, "campaign_subject_line": {"type": "STRING", "index": 25, "name": "campaign_subject_line", "comment": null}, "flow_name": {"type": "STRING", "index": 26, "name": "flow_name", "comment": null}, "person_city": {"type": "STRING", "index": 27, "name": "person_city", "comment": null}, "person_country": {"type": "STRING", "index": 28, "name": "person_country", "comment": null}, "person_region": {"type": "STRING", "index": 29, "name": "person_region", "comment": null}, "person_email": {"type": "STRING", "index": 30, "name": "person_email", "comment": null}, "person_timezone": {"type": "STRING", "index": 31, "name": "person_timezone", "comment": null}, "integration_name": {"type": "STRING", "index": 32, "name": "integration_name", "comment": null}, "integration_category": {"type": "STRING", "index": 33, "name": "integration_category", "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": 432.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "partitioning_type": {"id": "partitioning_type", "label": "Partitioned By", "value": "occurred_on", "include": true, "description": "The partitioning column for this table"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo.klaviyo__events"}, "model.klaviyo.klaviyo__campaigns": {"metadata": {"type": "table", "schema": "dbt_test_klaviyo", "name": "klaviyo__campaigns", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"campaign_type": {"type": "STRING", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "STRING", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "STRING", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "STRING", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "STRING", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "STRING", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "BOOL", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "STRING", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "STRING", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "STRING", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "STRING", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "INT64", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "STRING", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "STRING", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "STRING", "index": 15, "name": "source_relation", "comment": null}, "variation_id": {"type": "STRING", "index": 16, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "INT64", "index": 17, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 18, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 19, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "NUMERIC", "index": 20, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "NUMERIC", "index": 21, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "NUMERIC", "index": 22, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "NUMERIC", "index": 23, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 24, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "INT64", "index": 25, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "INT64", "index": 26, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "INT64", "index": 27, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "INT64", "index": 28, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "INT64", "index": 29, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "INT64", "index": 30, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "INT64", "index": 31, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "INT64", "index": 32, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "INT64", "index": 33, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "INT64", "index": 34, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "INT64", "index": 35, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "INT64", "index": 36, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "INT64", "index": 37, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "INT64", "index": 38, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "INT64", "index": 39, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "INT64", "index": 40, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "INT64", "index": 41, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "INT64", "index": 42, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "INT64", "index": 43, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "INT64", "index": 44, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "INT64", "index": 45, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "INT64", "index": 46, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "INT64", "index": 47, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "INT64", "index": 48, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "INT64", "index": 49, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "INT64", "index": 50, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "INT64", "index": 51, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "INT64", "index": 52, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "INT64", "index": 53, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "INT64", "index": 54, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "INT64", "index": 55, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "INT64", "index": 56, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "INT64", "index": 57, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "INT64", "index": 58, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "INT64", "index": 59, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 60, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "INT64", "index": 61, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "INT64", "index": 62, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "INT64", "index": 63, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "INT64", "index": 64, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "INT64", "index": 65, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "INT64", "index": 66, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "INT64", "index": 67, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "INT64", "index": 68, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "INT64", "index": 69, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "INT64", "index": 70, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "INT64", "index": 71, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "INT64", "index": 72, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "INT64", "index": 73, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "INT64", "index": 74, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "campaign_variation_key": {"type": "STRING", "index": 75, "name": "campaign_variation_key", "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": 403.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.klaviyo.klaviyo__campaigns"}, "model.klaviyo.klaviyo__persons": {"metadata": {"type": "table", "schema": "dbt_test_klaviyo", "name": "klaviyo__persons", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"person_id": {"type": "STRING", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "STRING", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "INT64", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "STRING", "index": 4, "name": "city", "comment": null}, "country": {"type": "STRING", "index": 5, "name": "country", "comment": null}, "zip": {"type": "INT64", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "STRING", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "STRING", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "STRING", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "FLOAT64", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "FLOAT64", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "INT64", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "STRING", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "STRING", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "STRING", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "INT64", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "STRING", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "STRING", "index": 18, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "INT64", "index": 19, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "INT64", "index": 20, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 21, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 22, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "TIMESTAMP", "index": 23, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "TIMESTAMP", "index": 24, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "TIMESTAMP", "index": 25, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "TIMESTAMP", "index": 26, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 27, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 28, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "NUMERIC", "index": 29, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "NUMERIC", "index": 30, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 31, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 32, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 33, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 34, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 35, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 36, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "INT64", "index": 37, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "INT64", "index": 38, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "INT64", "index": 39, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "INT64", "index": 40, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "INT64", "index": 41, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "INT64", "index": 42, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "INT64", "index": 43, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "INT64", "index": 44, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "INT64", "index": 45, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "INT64", "index": 46, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "INT64", "index": 47, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "INT64", "index": 48, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "INT64", "index": 49, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "INT64", "index": 50, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "INT64", "index": 51, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "INT64", "index": 52, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "INT64", "index": 53, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 54, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "INT64", "index": 55, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "INT64", "index": 56, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "INT64", "index": 57, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "INT64", "index": 58, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "INT64", "index": 59, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "INT64", "index": 60, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "INT64", "index": 61, "name": "total_count_failed_to_deliver_sms", "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": 385.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.klaviyo.klaviyo__persons"}, "seed.shopify_holistic_reporting_integration_tests.person": {"metadata": {"type": "table", "schema": "dbt_test", "name": "person", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "updated": {"type": "STRING", "index": 2, "name": "updated", "comment": null}, "created": {"type": "STRING", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "STRING", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "STRING", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "STRING", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "INT64", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "INT64", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "STRING", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "INT64", "index": 11, "name": "organization", "comment": null}, "region": {"type": "STRING", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "FLOAT64", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "FLOAT64", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "STRING", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "STRING", "index": 16, "name": "country", "comment": null}, "zip": {"type": "INT64", "index": 17, "name": "zip", "comment": null}, "city": {"type": "STRING", "index": 18, "name": "city", "comment": null}, "email": {"type": "STRING", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "STRING", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "STRING", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "BOOL", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "STRING", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "STRING", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "STRING", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "STRING", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "INT64", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "INT64", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "INT64", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "INT64", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "INT64", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "INT64", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "INT64", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "INT64", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "INT64", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "INT64", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "INT64", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "INT64", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "INT64", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "INT64", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "INT64", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "INT64", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "STRING", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "INT64", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "INT64", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "INT64", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "STRING", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "INT64", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "INT64", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "INT64", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "INT64", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "DATE", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "INT64", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "INT64", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "INT64", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "INT64", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "INT64", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "INT64", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "INT64", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "INT64", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "INT64", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "INT64", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "INT64", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "INT64", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "INT64", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "INT64", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "INT64", "index": 68, "name": "custom_landingpage_tag", "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": 546.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": "seed.shopify_holistic_reporting_integration_tests.person"}, "seed.shopify_holistic_reporting_integration_tests.campaign": {"metadata": {"type": "table", "schema": "dbt_test", "name": "campaign", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "STRING", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "INT64", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "BOOL", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "STRING", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "STRING", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "STRING", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "STRING", "index": 8, "name": "subject", "comment": null}, "name": {"type": "STRING", "index": 9, "name": "name", "comment": null}, "status": {"type": "STRING", "index": 10, "name": "status", "comment": null}, "created": {"type": "STRING", "index": 11, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "STRING", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "STRING", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "STRING", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 17, "name": "_fivetran_synced", "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": 362.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": "seed.shopify_holistic_reporting_integration_tests.campaign"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_product_variant_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "INT64", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "INT64", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "STRING", "index": 4, "name": "title", "comment": null}, "price": {"type": "INT64", "index": 5, "name": "price", "comment": null}, "sku": {"type": "INT64", "index": 6, "name": "sku", "comment": null}, "position": {"type": "INT64", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "STRING", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "INT64", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "STRING", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "STRING", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "STRING", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "BOOL", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "INT64", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "INT64", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "INT64", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "INT64", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "INT64", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "STRING", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "INT64", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "BOOL", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "INT64", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "STRING", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "INT64", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "STRING", "index": 27, "name": "option_1", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 948.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": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_refund_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "STRING", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "STRING", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "STRING", "index": 4, "name": "note", "comment": null}, "restock": {"type": "BOOL", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "INT64", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "INT64", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "INT64", "index": 9, "name": "order_id", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 431.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": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.metric": {"metadata": {"type": "table", "schema": "dbt_test", "name": "metric", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "name": {"type": "STRING", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "STRING", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "STRING", "index": 4, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "name": "_fivetran_synced", "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": 181.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": "seed.shopify_holistic_reporting_integration_tests.metric"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_order_line_refund_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "INT64", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "INT64", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "INT64", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "INT64", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 7, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 0.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 0.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": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_transaction_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "FLOAT64", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "STRING", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "STRING", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "STRING", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "INT64", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "STRING", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "STRING", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "STRING", "index": 11, "name": "message", "comment": null}, "currency": {"type": "STRING", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "INT64", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "INT64", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "STRING", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "STRING", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "INT64", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "INT64", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "INT64", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "INT64", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "INT64", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "INT64", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "STRING", "index": 23, "name": "status", "comment": null}, "test": {"type": "BOOL", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "INT64", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "INT64", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "INT64", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "INT64", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "INT64", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "STRING", "index": 31, "name": "receipt", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1045.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": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, "seed.shopify_holistic_reporting_integration_tests.integration": {"metadata": {"type": "table", "schema": "dbt_test", "name": "integration", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "category": {"type": "STRING", "index": 2, "name": "category", "comment": null}, "name": {"type": "STRING", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 5, "name": "_fivetran_synced", "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": 72.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": "seed.shopify_holistic_reporting_integration_tests.integration"}, "seed.shopify_holistic_reporting_integration_tests.event": {"metadata": {"type": "table", "schema": "dbt_test", "name": "event", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "STRING", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "INT64", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "STRING", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "STRING", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "STRING", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "STRING", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "STRING", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "STRING", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "INT64", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "INT64", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "INT64", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "INT64", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "INT64", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "INT64", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "INT64", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "INT64", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "INT64", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "INT64", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "INT64", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "INT64", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "INT64", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "INT64", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "INT64", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "INT64", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "STRING", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "INT64", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "INT64", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "INT64", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "INT64", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "INT64", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "STRING", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "INT64", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "INT64", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "INT64", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "INT64", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "INT64", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "INT64", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "INT64", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "INT64", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "INT64", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "STRING", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "STRING", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "STRING", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "INT64", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "INT64", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "INT64", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "INT64", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "INT64", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "INT64", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "INT64", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "INT64", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "INT64", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "INT64", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "INT64", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "INT64", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "INT64", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "INT64", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "INT64", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "INT64", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "INT64", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "INT64", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "INT64", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "INT64", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "INT64", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "INT64", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "INT64", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "STRING", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "INT64", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "INT64", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "INT64", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "INT64", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "INT64", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "INT64", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "INT64", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "INT64", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "INT64", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "INT64", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "INT64", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "INT64", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "INT64", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "INT64", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "INT64", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "INT64", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "INT64", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "INT64", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "INT64", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "INT64", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "INT64", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "INT64", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "INT64", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "INT64", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "INT64", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "INT64", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "INT64", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "INT64", "index": 100, "name": "property_to_phone_region", "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": 577.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": "seed.shopify_holistic_reporting_integration_tests.event"}, "seed.shopify_holistic_reporting_integration_tests.flow": {"metadata": {"type": "table", "schema": "dbt_test", "name": "flow", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "name": {"type": "STRING", "index": 2, "name": "name", "comment": null}, "status": {"type": "STRING", "index": 3, "name": "status", "comment": null}, "created": {"type": "STRING", "index": 4, "name": "created", "comment": null}, "updated": {"type": "STRING", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "STRING", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "STRING", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 9, "name": "_fivetran_synced", "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": 606.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": "seed.shopify_holistic_reporting_integration_tests.flow"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_order_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "note": {"type": "STRING", "index": 2, "name": "note", "comment": null}, "email": {"type": "STRING", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "BOOL", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "STRING", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "FLOAT64", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "INT64", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "FLOAT64", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "STRING", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "STRING", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "STRING", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "STRING", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "STRING", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "STRING", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "STRING", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "STRING", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "STRING", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "STRING", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "STRING", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "STRING", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "INT64", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "STRING", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "STRING", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "STRING", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "STRING", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "STRING", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "STRING", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "STRING", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "STRING", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "STRING", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "STRING", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "STRING", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "STRING", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "STRING", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "STRING", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "INT64", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "STRING", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "STRING", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "STRING", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "INT64", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "INT64", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "INT64", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "INT64", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "INT64", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "STRING", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "TIMESTAMP", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "STRING", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "STRING", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "INT64", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "TIMESTAMP", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "STRING", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "INT64", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "STRING", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "STRING", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "BOOL", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "STRING", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "STRING", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "STRING", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "BOOL", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "STRING", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 66, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3850.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": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_order_line_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_id": {"type": "INT64", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "INT64", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "INT64", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "INT64", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "STRING", "index": 5, "name": "name", "comment": null}, "title": {"type": "STRING", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "STRING", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "FLOAT64", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "INT64", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "INT64", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "STRING", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "INT64", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "BOOL", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "BOOL", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "BOOL", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "INT64", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "INT64", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "INT64", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 21, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 727.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": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_product_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "title": {"type": "STRING", "index": 2, "name": "title", "comment": null}, "handle": {"type": "STRING", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "STRING", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "STRING", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "TIMESTAMP", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "STRING", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 11, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 549.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": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_order_adjustment_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "INT64", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "FLOAT64", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "STRING", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "STRING", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "INT64", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "INT64", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 10, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 416.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": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"metadata": {"type": "table", "schema": "dbt_test", "name": "shopify_customer_data", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "INT64", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "STRING", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "STRING", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "STRING", "index": 4, "name": "email", "comment": null}, "phone": {"type": "INT64", "index": 5, "name": "phone", "comment": null}, "state": {"type": "STRING", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "INT64", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "FLOAT64", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "TIMESTAMP", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "TIMESTAMP", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "BOOL", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "BOOL", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "BOOL", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "INT64", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 15, "name": "_fivetran_synced", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 512.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": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, "model.shopify.shopify__calendar": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__calendar", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "DATETIME", "index": 1, "name": "date_day", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 1381.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 11048.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.shopify.shopify__calendar"}, "model.shopify.shopify__orders": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__orders", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_id": {"type": "INT64", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "TIMESTAMP", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "INT64", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "FLOAT64", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "INT64", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "STRING", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "FLOAT64", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "BOOL", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "INT64", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "STRING", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "INT64", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "STRING", "index": 15, "name": "name", "comment": null}, "note": {"type": "STRING", "index": 16, "name": "note", "comment": null}, "number": {"type": "INT64", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "INT64", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "INT64", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "TIMESTAMP", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "STRING", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "STRING", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "STRING", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "STRING", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "INT64", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "STRING", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "STRING", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "STRING", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "STRING", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "STRING", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "STRING", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "STRING", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "STRING", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "STRING", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "STRING", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "STRING", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "STRING", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "STRING", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "STRING", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "STRING", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "STRING", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "STRING", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "INT64", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "STRING", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "STRING", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "BOOL", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "STRING", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "STRING", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "STRING", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "STRING", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "STRING", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "STRING", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "STRING", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "STRING", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "STRING", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "STRING", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "STRING", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "STRING", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "STRING", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "STRING", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "INT64", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "STRING", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "BOOL", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "STRING", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 68, "name": "source_relation", "comment": null}, "shipping_cost": {"type": "FLOAT64", "index": 69, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "INT64", "index": 70, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "FLOAT64", "index": 71, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "NUMERIC", "index": 72, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "NUMERIC", "index": 73, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "FLOAT64", "index": 74, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "INT64", "index": 75, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "INT64", "index": 76, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "STRING", "index": 77, "name": "new_vs_repeat", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3970.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.shopify.shopify__orders"}, "model.shopify.shopify__customer_cohorts": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__customer_cohorts", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_month": {"type": "DATETIME", "index": 1, "name": "date_month", "comment": null}, "customer_id": {"type": "INT64", "index": 2, "name": "customer_id", "comment": null}, "first_order_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "first_order_timestamp", "comment": null}, "cohort_month": {"type": "TIMESTAMP", "index": 4, "name": "cohort_month", "comment": null}, "source_relation": {"type": "STRING", "index": 5, "name": "source_relation", "comment": null}, "order_count_in_month": {"type": "INT64", "index": 6, "name": "order_count_in_month", "comment": null}, "total_price_in_month": {"type": "FLOAT64", "index": 7, "name": "total_price_in_month", "comment": null}, "line_item_count_in_month": {"type": "INT64", "index": 8, "name": "line_item_count_in_month", "comment": null}, "total_price_lifetime": {"type": "FLOAT64", "index": 9, "name": "total_price_lifetime", "comment": null}, "order_count_lifetime": {"type": "INT64", "index": 10, "name": "order_count_lifetime", "comment": null}, "line_item_count_lifetime": {"type": "INT64", "index": 11, "name": "line_item_count_lifetime", "comment": null}, "cohort_month_number": {"type": "INT64", "index": 12, "name": "cohort_month_number", "comment": null}, "customer_cohort_id": {"type": "STRING", "index": 13, "name": "customer_cohort_id", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 52.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 6448.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.shopify.shopify__customer_cohorts"}, "model.shopify.shopify__transactions": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__transactions", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"transaction_id": {"type": "INT64", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "INT64", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "INT64", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "FLOAT64", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "STRING", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "STRING", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "INT64", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "STRING", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "STRING", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "STRING", "index": 10, "name": "message", "comment": null}, "currency": {"type": "STRING", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "INT64", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "INT64", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "STRING", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "INT64", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "INT64", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "INT64", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "INT64", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "STRING", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "STRING", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "INT64", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "INT64", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "INT64", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "INT64", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "INT64", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "INT64", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "STRING", "index": 27, "name": "status", "comment": null}, "test": {"type": "BOOL", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "INT64", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 30, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 31, "name": "source_relation", "comment": null}, "exchange_rate": {"type": "NUMERIC", "index": 32, "name": "exchange_rate", "comment": null}, "currency_exchange_calculated_amount": {"type": "FLOAT64", "index": 33, "name": "currency_exchange_calculated_amount", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1119.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.shopify.shopify__transactions"}, "model.shopify.shopify__order_lines": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__order_lines", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "INT64", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "STRING", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "BOOL", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "INT64", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "INT64", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "INT64", "index": 8, "name": "index", "comment": null}, "name": {"type": "STRING", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "INT64", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "INT64", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "FLOAT64", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "INT64", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "NUMERIC", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "STRING", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "NUMERIC", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "STRING", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "NUMERIC", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "INT64", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "BOOL", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "STRING", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "BOOL", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "STRING", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "INT64", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "INT64", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "STRING", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "STRING", "index": 27, "name": "source_relation", "comment": null}, "refunded_quantity": {"type": "INT64", "index": 28, "name": "refunded_quantity", "comment": null}, "refunded_subtotal": {"type": "NUMERIC", "index": 29, "name": "refunded_subtotal", "comment": null}, "quantity_net_refunds": {"type": "INT64", "index": 30, "name": "quantity_net_refunds", "comment": null}, "subtotal_net_refunds": {"type": "NUMERIC", "index": 31, "name": "subtotal_net_refunds", "comment": null}, "variant_created_at": {"type": "STRING", "index": 32, "name": "variant_created_at", "comment": null}, "variant_updated_at": {"type": "STRING", "index": 33, "name": "variant_updated_at", "comment": null}, "inventory_item_id": {"type": "INT64", "index": 34, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "INT64", "index": 35, "name": "image_id", "comment": null}, "variant_title": {"type": "STRING", "index": 36, "name": "variant_title", "comment": null}, "variant_price": {"type": "INT64", "index": 37, "name": "variant_price", "comment": null}, "variant_sku": {"type": "INT64", "index": 38, "name": "variant_sku", "comment": null}, "variant_position": {"type": "INT64", "index": 39, "name": "variant_position", "comment": null}, "variant_inventory_policy": {"type": "STRING", "index": 40, "name": "variant_inventory_policy", "comment": null}, "variant_compare_at_price": {"type": "INT64", "index": 41, "name": "variant_compare_at_price", "comment": null}, "variant_fulfillment_service": {"type": "STRING", "index": 42, "name": "variant_fulfillment_service", "comment": null}, "variant_inventory_management": {"type": "STRING", "index": 43, "name": "variant_inventory_management", "comment": null}, "variant_is_taxable": {"type": "BOOL", "index": 44, "name": "variant_is_taxable", "comment": null}, "variant_barcode": {"type": "INT64", "index": 45, "name": "variant_barcode", "comment": null}, "variant_grams": {"type": "INT64", "index": 46, "name": "variant_grams", "comment": null}, "variant_inventory_quantity": {"type": "INT64", "index": 47, "name": "variant_inventory_quantity", "comment": null}, "variant_weight": {"type": "INT64", "index": 48, "name": "variant_weight", "comment": null}, "variant_weight_unit": {"type": "STRING", "index": 49, "name": "variant_weight_unit", "comment": null}, "variant_option_1": {"type": "STRING", "index": 50, "name": "variant_option_1", "comment": null}, "variant_option_2": {"type": "INT64", "index": 51, "name": "variant_option_2", "comment": null}, "variant_option_3": {"type": "INT64", "index": 52, "name": "variant_option_3", "comment": null}, "variant_tax_code": {"type": "STRING", "index": 53, "name": "variant_tax_code", "comment": null}, "variant_is_requiring_shipping": {"type": "BOOL", "index": 54, "name": "variant_is_requiring_shipping", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 829.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.shopify.shopify__order_lines"}, "model.shopify.shopify__customers": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__customers", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_synced": {"type": "TIMESTAMP", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "BOOL", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "INT64", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "STRING", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "STRING", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "INT64", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "STRING", "index": 8, "name": "last_name", "comment": null}, "phone": {"type": "INT64", "index": 9, "name": "phone", "comment": null}, "account_state": {"type": "STRING", "index": 10, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "BOOL", "index": 11, "name": "is_tax_exempt", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 12, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "BOOL", "index": 13, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "STRING", "index": 14, "name": "source_relation", "comment": null}, "first_order_timestamp": {"type": "TIMESTAMP", "index": 15, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "TIMESTAMP", "index": 16, "name": "most_recent_order_timestamp", "comment": null}, "average_order_value": {"type": "FLOAT64", "index": 17, "name": "average_order_value", "comment": null}, "lifetime_total_spent": {"type": "FLOAT64", "index": 18, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "FLOAT64", "index": 19, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "FLOAT64", "index": 20, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "INT64", "index": 21, "name": "lifetime_count_orders", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 622.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.shopify.shopify__customers"}, "model.shopify.shopify__products": {"metadata": {"type": "table", "schema": "dbt_test_shopify", "name": "shopify__products", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"_fivetran_deleted": {"type": "BOOL", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "STRING", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "INT64", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "STRING", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "TIMESTAMP", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "STRING", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "STRING", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "STRING", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "STRING", "index": 12, "name": "source_relation", "comment": null}, "quantity_sold": {"type": "INT64", "index": 13, "name": "quantity_sold", "comment": null}, "subtotal_sold": {"type": "INT64", "index": 14, "name": "subtotal_sold", "comment": null}, "quantity_sold_net_refunds": {"type": "INT64", "index": 15, "name": "quantity_sold_net_refunds", "comment": null}, "subtotal_sold_net_refunds": {"type": "NUMERIC", "index": 16, "name": "subtotal_sold_net_refunds", "comment": null}, "first_order_timestamp": {"type": "TIMESTAMP", "index": 17, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "TIMESTAMP", "index": 18, "name": "most_recent_order_timestamp", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 723.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.shopify.shopify__products"}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"metadata": {"type": "view", "schema": "dbt_test_int_klaviyo", "name": "int_klaviyo__campaign_flow_metrics", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"last_touch_campaign_id": {"type": "STRING", "index": 1, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 2, "name": "last_touch_flow_id", "comment": null}, "variation_id": {"type": "STRING", "index": 3, "name": "variation_id", "comment": null}, "source_relation": {"type": "STRING", "index": 4, "name": "source_relation", "comment": null}, "total_count_unique_people": {"type": "INT64", "index": 5, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 6, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 7, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "NUMERIC", "index": 8, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "NUMERIC", "index": 9, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "NUMERIC", "index": 10, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "NUMERIC", "index": 11, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 12, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "INT64", "index": 13, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "INT64", "index": 14, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "INT64", "index": 15, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "INT64", "index": 16, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "INT64", "index": 17, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "INT64", "index": 18, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "INT64", "index": 19, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "INT64", "index": 20, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "INT64", "index": 21, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "INT64", "index": 22, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "INT64", "index": 23, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "INT64", "index": 24, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "INT64", "index": 25, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "INT64", "index": 26, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "INT64", "index": 27, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "INT64", "index": 28, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "INT64", "index": 29, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "INT64", "index": 30, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "INT64", "index": 31, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "INT64", "index": 32, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "INT64", "index": 33, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "INT64", "index": 34, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "INT64", "index": 35, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "INT64", "index": 36, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "INT64", "index": 37, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "INT64", "index": 38, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "INT64", "index": 39, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "INT64", "index": 40, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "INT64", "index": 41, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "INT64", "index": 42, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "INT64", "index": 43, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "INT64", "index": 44, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "INT64", "index": 45, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "INT64", "index": 46, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "INT64", "index": 47, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 48, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "INT64", "index": 49, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "INT64", "index": 50, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "INT64", "index": 51, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "INT64", "index": 52, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "INT64", "index": 53, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "INT64", "index": 54, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "INT64", "index": 55, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "INT64", "index": 56, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "INT64", "index": 57, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "INT64", "index": 58, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "INT64", "index": 59, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "INT64", "index": 60, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "INT64", "index": 61, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "INT64", "index": 62, "name": "unique_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__campaign_flow_metrics"}, "model.klaviyo.int_klaviyo__event_attribution": {"metadata": {"type": "table", "schema": "dbt_test_int_klaviyo", "name": "int_klaviyo__event_attribution", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"variation_id": {"type": "STRING", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "STRING", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "TIMESTAMP", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "INT64", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "STRING", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "STRING", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "STRING", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "STRING", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "STRING", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "INT64", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "STRING", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "DATE", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "STRING", "index": 15, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "STRING", "index": 16, "name": "touch_id", "comment": null}, "touch_type": {"type": "STRING", "index": 17, "name": "touch_type", "comment": null}, "touch_session": {"type": "INT64", "index": 18, "name": "touch_session", "comment": null}, "session_start_at": {"type": "TIMESTAMP", "index": 19, "name": "session_start_at", "comment": null}, "session_event_type": {"type": "STRING", "index": 20, "name": "session_event_type", "comment": null}, "last_touch_id": {"type": "STRING", "index": 21, "name": "last_touch_id", "comment": null}, "session_touch_type": {"type": "STRING", "index": 22, "name": "session_touch_type", "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": 448.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "partitioning_type": {"id": "partitioning_type", "label": "Partitioned By", "value": "occurred_on", "include": true, "description": "The partitioning column for this table"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo.int_klaviyo__event_attribution"}, "model.klaviyo.int_klaviyo__person_metrics": {"metadata": {"type": "view", "schema": "dbt_test_int_klaviyo", "name": "int_klaviyo__person_metrics", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"person_id": {"type": "STRING", "index": 1, "name": "person_id", "comment": null}, "source_relation": {"type": "STRING", "index": 2, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "INT64", "index": 3, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "INT64", "index": 4, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 5, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 6, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "TIMESTAMP", "index": 7, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "TIMESTAMP", "index": 8, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "TIMESTAMP", "index": 9, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "TIMESTAMP", "index": 10, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 11, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 12, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "NUMERIC", "index": 13, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "NUMERIC", "index": 14, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 15, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 16, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 17, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 18, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 19, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 20, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "INT64", "index": 21, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "INT64", "index": 22, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "INT64", "index": 23, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "INT64", "index": 24, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "INT64", "index": 25, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "INT64", "index": 26, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "INT64", "index": 27, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "INT64", "index": 28, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "INT64", "index": 29, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "INT64", "index": 30, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "INT64", "index": 31, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "INT64", "index": 32, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "INT64", "index": 33, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "INT64", "index": 34, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "INT64", "index": 35, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "INT64", "index": 36, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "INT64", "index": 37, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 38, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "INT64", "index": 39, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "INT64", "index": 40, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "INT64", "index": 41, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "INT64", "index": 42, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "INT64", "index": 43, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "INT64", "index": 44, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "INT64", "index": 45, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__person_metrics"}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"metadata": {"type": "view", "schema": "dbt_test_shopify_holistic", "name": "int__klaviyo_person_rollup", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"email": {"type": "STRING", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "STRING", "index": 2, "name": "source_relation", "comment": null}, "person_ids": {"type": "STRING", "index": 3, "name": "person_ids", "comment": null}, "phone_numbers": {"type": "STRING", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "STRING", "index": 5, "name": "full_name", "comment": null}, "first_klaviyo_account_made_at": {"type": "STRING", "index": 6, "name": "first_klaviyo_account_made_at", "comment": null}, "last_klaviyo_account_made_at": {"type": "STRING", "index": 7, "name": "last_klaviyo_account_made_at", "comment": null}, "last_updated_at": {"type": "STRING", "index": 8, "name": "last_updated_at", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 9, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 10, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "TIMESTAMP", "index": 11, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "TIMESTAMP", "index": 12, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "TIMESTAMP", "index": 13, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "TIMESTAMP", "index": 14, "name": "last_flow_touch_at", "comment": null}, "count_total_campaigns": {"type": "INT64", "index": 15, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "INT64", "index": 16, "name": "count_total_flows", "comment": null}, "address_1": {"type": "STRING", "index": 17, "name": "address_1", "comment": null}, "address_2": {"type": "INT64", "index": 18, "name": "address_2", "comment": null}, "city": {"type": "STRING", "index": 19, "name": "city", "comment": null}, "country": {"type": "STRING", "index": 20, "name": "country", "comment": null}, "zip": {"type": "INT64", "index": 21, "name": "zip", "comment": null}, "latitude": {"type": "FLOAT64", "index": 22, "name": "latitude", "comment": null}, "longitude": {"type": "FLOAT64", "index": 23, "name": "longitude", "comment": null}, "organization": {"type": "INT64", "index": 24, "name": "organization", "comment": null}, "region": {"type": "STRING", "index": 25, "name": "region", "comment": null}, "timezone": {"type": "STRING", "index": 26, "name": "timezone", "comment": null}, "title": {"type": "INT64", "index": 27, "name": "title", "comment": null}, "total_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 28, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 29, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "NUMERIC", "index": 30, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "NUMERIC", "index": 31, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 32, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 33, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 34, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 35, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 36, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 37, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "INT64", "index": 38, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "INT64", "index": 39, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "INT64", "index": 40, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "INT64", "index": 41, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "INT64", "index": 42, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "INT64", "index": 43, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "INT64", "index": 44, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "INT64", "index": 45, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "INT64", "index": 46, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "INT64", "index": 47, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "INT64", "index": 48, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "INT64", "index": 49, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "INT64", "index": 50, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "INT64", "index": 51, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "INT64", "index": 52, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "INT64", "index": 53, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "INT64", "index": 54, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 55, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "INT64", "index": 56, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "INT64", "index": 57, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "INT64", "index": 58, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "INT64", "index": 59, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "INT64", "index": 60, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "INT64", "index": 61, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "INT64", "index": 62, "name": "total_count_failed_to_deliver_sms", "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.shopify_holistic_reporting.int__klaviyo_person_rollup"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"metadata": {"type": "table", "schema": "dbt_test_shopify_holistic", "name": "shopify_holistic_reporting__customer_enhanced", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"email": {"type": "STRING", "index": 1, "name": "email", "comment": null}, "full_name": {"type": "STRING", "index": 2, "name": "full_name", "comment": null}, "shopify_customer_ids": {"type": "STRING", "index": 3, "name": "shopify_customer_ids", "comment": null}, "klaviyo_person_ids": {"type": "STRING", "index": 4, "name": "klaviyo_person_ids", "comment": null}, "phone_number": {"type": "STRING", "index": 5, "name": "phone_number", "comment": null}, "shopify_customer_first_created_at": {"type": "TIMESTAMP", "index": 6, "name": "shopify_customer_first_created_at", "comment": null}, "shopify_customer_last_created_at": {"type": "TIMESTAMP", "index": 7, "name": "shopify_customer_last_created_at", "comment": null}, "klaviyo_person_first_created_at": {"type": "STRING", "index": 8, "name": "klaviyo_person_first_created_at", "comment": null}, "klaviyo_person_last_created_at": {"type": "STRING", "index": 9, "name": "klaviyo_person_last_created_at", "comment": null}, "shopify_customer_last_updated_at": {"type": "TIMESTAMP", "index": 10, "name": "shopify_customer_last_updated_at", "comment": null}, "klaviyo_person_last_updated_at": {"type": "STRING", "index": 11, "name": "klaviyo_person_last_updated_at", "comment": null}, "is_shopify_email_verified": {"type": "BOOL", "index": 12, "name": "is_shopify_email_verified", "comment": null}, "shopify_first_order_at": {"type": "TIMESTAMP", "index": 13, "name": "shopify_first_order_at", "comment": null}, "shopify_last_order_at": {"type": "TIMESTAMP", "index": 14, "name": "shopify_last_order_at", "comment": null}, "shopify_lifetime_total_spent": {"type": "FLOAT64", "index": 15, "name": "shopify_lifetime_total_spent", "comment": null}, "shopify_lifetime_total_refunded": {"type": "FLOAT64", "index": 16, "name": "shopify_lifetime_total_refunded", "comment": null}, "shopify_lifetime_total_amount": {"type": "FLOAT64", "index": 17, "name": "shopify_lifetime_total_amount", "comment": null}, "shopify_lifetime_count_orders": {"type": "INT64", "index": 18, "name": "shopify_lifetime_count_orders", "comment": null}, "shopify_average_order_value": {"type": "FLOAT64", "index": 19, "name": "shopify_average_order_value", "comment": null}, "shopify_has_accepted_marketing": {"type": "BOOL", "index": 20, "name": "shopify_has_accepted_marketing", "comment": null}, "shopify_is_tax_exempt": {"type": "BOOL", "index": 21, "name": "shopify_is_tax_exempt", "comment": null}, "shopify_default_address_id": {"type": "INT64", "index": 22, "name": "shopify_default_address_id", "comment": null}, "shopify_account_state": {"type": "STRING", "index": 23, "name": "shopify_account_state", "comment": null}, "shopify_source_relation": {"type": "STRING", "index": 24, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "TIMESTAMP", "index": 25, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "TIMESTAMP", "index": 26, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_first_campaign_touch_at": {"type": "TIMESTAMP", "index": 27, "name": "klaviyo_first_campaign_touch_at", "comment": null}, "klaviyo_last_campaign_touch_at": {"type": "TIMESTAMP", "index": 28, "name": "klaviyo_last_campaign_touch_at", "comment": null}, "klaviyo_first_flow_touch_at": {"type": "TIMESTAMP", "index": 29, "name": "klaviyo_first_flow_touch_at", "comment": null}, "klaviyo_last_flow_touch_at": {"type": "TIMESTAMP", "index": 30, "name": "klaviyo_last_flow_touch_at", "comment": null}, "klaviyo_count_total_campaigns": {"type": "INT64", "index": 31, "name": "klaviyo_count_total_campaigns", "comment": null}, "klaviyo_count_total_flows": {"type": "INT64", "index": 32, "name": "klaviyo_count_total_flows", "comment": null}, "klaviyo_address_1": {"type": "STRING", "index": 33, "name": "klaviyo_address_1", "comment": null}, "klaviyo_address_2": {"type": "INT64", "index": 34, "name": "klaviyo_address_2", "comment": null}, "klaviyo_city": {"type": "STRING", "index": 35, "name": "klaviyo_city", "comment": null}, "klaviyo_country": {"type": "STRING", "index": 36, "name": "klaviyo_country", "comment": null}, "klaviyo_zip": {"type": "INT64", "index": 37, "name": "klaviyo_zip", "comment": null}, "klaviyo_latitude": {"type": "FLOAT64", "index": 38, "name": "klaviyo_latitude", "comment": null}, "klaviyo_longitude": {"type": "FLOAT64", "index": 39, "name": "klaviyo_longitude", "comment": null}, "klaviyo_organization": {"type": "INT64", "index": 40, "name": "klaviyo_organization", "comment": null}, "klaviyo_region": {"type": "STRING", "index": 41, "name": "klaviyo_region", "comment": null}, "klaviyo_timezone": {"type": "STRING", "index": 42, "name": "klaviyo_timezone", "comment": null}, "klaviyo_title": {"type": "INT64", "index": 43, "name": "klaviyo_title", "comment": null}, "klaviyo_total_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 44, "name": "klaviyo_total_sum_revenue_refunded_order", "comment": null}, "klaviyo_organic_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 45, "name": "klaviyo_organic_sum_revenue_refunded_order", "comment": null}, "klaviyo_total_sum_revenue_placed_order": {"type": "NUMERIC", "index": 46, "name": "klaviyo_total_sum_revenue_placed_order", "comment": null}, "klaviyo_organic_sum_revenue_placed_order": {"type": "NUMERIC", "index": 47, "name": "klaviyo_organic_sum_revenue_placed_order", "comment": null}, "klaviyo_total_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 48, "name": "klaviyo_total_sum_revenue_ordered_product", "comment": null}, "klaviyo_organic_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 49, "name": "klaviyo_organic_sum_revenue_ordered_product", "comment": null}, "klaviyo_total_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 50, "name": "klaviyo_total_sum_revenue_checkout_started", "comment": null}, "klaviyo_organic_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 51, "name": "klaviyo_organic_sum_revenue_checkout_started", "comment": null}, "klaviyo_total_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 52, "name": "klaviyo_total_sum_revenue_cancelled_order", "comment": null}, "klaviyo_organic_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 53, "name": "klaviyo_organic_sum_revenue_cancelled_order", "comment": null}, "klaviyo_total_count_active_on_site": {"type": "INT64", "index": 54, "name": "klaviyo_total_count_active_on_site", "comment": null}, "klaviyo_total_count_viewed_product": {"type": "INT64", "index": 55, "name": "klaviyo_total_count_viewed_product", "comment": null}, "klaviyo_total_count_ordered_product": {"type": "INT64", "index": 56, "name": "klaviyo_total_count_ordered_product", "comment": null}, "klaviyo_total_count_placed_order": {"type": "INT64", "index": 57, "name": "klaviyo_total_count_placed_order", "comment": null}, "klaviyo_total_count_refunded_order": {"type": "INT64", "index": 58, "name": "klaviyo_total_count_refunded_order", "comment": null}, "klaviyo_total_count_cancelled_order": {"type": "INT64", "index": 59, "name": "klaviyo_total_count_cancelled_order", "comment": null}, "klaviyo_total_count_fulfilled_order": {"type": "INT64", "index": 60, "name": "klaviyo_total_count_fulfilled_order", "comment": null}, "klaviyo_total_count_received_email": {"type": "INT64", "index": 61, "name": "klaviyo_total_count_received_email", "comment": null}, "klaviyo_total_count_clicked_email": {"type": "INT64", "index": 62, "name": "klaviyo_total_count_clicked_email", "comment": null}, "klaviyo_total_count_opened_email": {"type": "INT64", "index": 63, "name": "klaviyo_total_count_opened_email", "comment": null}, "klaviyo_total_count_bounced_email": {"type": "INT64", "index": 64, "name": "klaviyo_total_count_bounced_email", "comment": null}, "klaviyo_total_count_marked_email_as_spam": {"type": "INT64", "index": 65, "name": "klaviyo_total_count_marked_email_as_spam", "comment": null}, "klaviyo_total_count_dropped_email": {"type": "INT64", "index": 66, "name": "klaviyo_total_count_dropped_email", "comment": null}, "klaviyo_total_count_subscribed_to_list": {"type": "INT64", "index": 67, "name": "klaviyo_total_count_subscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed_to_list": {"type": "INT64", "index": 68, "name": "klaviyo_total_count_unsubscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed": {"type": "INT64", "index": 69, "name": "klaviyo_total_count_unsubscribed", "comment": null}, "klaviyo_total_count_updated_email_preferences": {"type": "INT64", "index": 70, "name": "klaviyo_total_count_updated_email_preferences", "comment": null}, "klaviyo_total_count_subscribed_to_back_in_stock": {"type": "INT64", "index": 71, "name": "klaviyo_total_count_subscribed_to_back_in_stock", "comment": null}, "klaviyo_total_count_merged_profile": {"type": "INT64", "index": 72, "name": "klaviyo_total_count_merged_profile", "comment": null}, "klaviyo_total_count_received_sms": {"type": "INT64", "index": 73, "name": "klaviyo_total_count_received_sms", "comment": null}, "klaviyo_total_count_clicked_sms": {"type": "INT64", "index": 74, "name": "klaviyo_total_count_clicked_sms", "comment": null}, "klaviyo_total_count_consented_to_receive_sms": {"type": "INT64", "index": 75, "name": "klaviyo_total_count_consented_to_receive_sms", "comment": null}, "klaviyo_total_count_sent_sms": {"type": "INT64", "index": 76, "name": "klaviyo_total_count_sent_sms", "comment": null}, "klaviyo_total_count_unsubscribed_from_sms": {"type": "INT64", "index": 77, "name": "klaviyo_total_count_unsubscribed_from_sms", "comment": null}, "klaviyo_total_count_failed_to_deliver_sms": {"type": "INT64", "index": 78, "name": "klaviyo_total_count_failed_to_deliver_sms", "comment": null}, "klaviyo_source_relation": {"type": "STRING", "index": 79, "name": "klaviyo_source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 5.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1075.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.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"metadata": {"type": "view", "schema": "dbt_test_shopify_holistic", "name": "int__daily_shopify_customer_orders", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "DATE", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "STRING", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "STRING", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 4, "name": "last_touch_flow_id", "comment": null}, "last_touch_campaign_name": {"type": "STRING", "index": 5, "name": "last_touch_campaign_name", "comment": null}, "last_touch_flow_name": {"type": "STRING", "index": 6, "name": "last_touch_flow_name", "comment": null}, "last_touch_variation_id": {"type": "STRING", "index": 7, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_subject_line": {"type": "STRING", "index": 8, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "STRING", "index": 9, "name": "last_touch_campaign_type", "comment": null}, "source_relation": {"type": "STRING", "index": 10, "name": "source_relation", "comment": null}, "total_orders": {"type": "INT64", "index": 11, "name": "total_orders", "comment": null}, "total_price": {"type": "FLOAT64", "index": 12, "name": "total_price", "comment": null}, "count_line_items": {"type": "INT64", "index": 13, "name": "count_line_items", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 14, "name": "total_line_items_price", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 15, "name": "total_discounts", "comment": null}, "total_tax": {"type": "INT64", "index": 16, "name": "total_tax", "comment": null}, "total_shipping_cost": {"type": "FLOAT64", "index": 17, "name": "total_shipping_cost", "comment": null}, "total_refund_subtotal": {"type": "NUMERIC", "index": 18, "name": "total_refund_subtotal", "comment": null}, "total_refund_tax": {"type": "NUMERIC", "index": 19, "name": "total_refund_tax", "comment": null}, "count_cancelled_orders": {"type": "INT64", "index": 20, "name": "count_cancelled_orders", "comment": null}, "count_products": {"type": "INT64", "index": 21, "name": "count_products", "comment": null}, "count_product_variants": {"type": "INT64", "index": 22, "name": "count_product_variants", "comment": null}, "sum_quantity": {"type": "INT64", "index": 23, "name": "sum_quantity", "comment": null}, "total_order_adjustment_amount": {"type": "INT64", "index": 24, "name": "total_order_adjustment_amount", "comment": null}, "total_order_adjustment_tax_amount": {"type": "FLOAT64", "index": 25, "name": "total_order_adjustment_tax_amount", "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.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"metadata": {"type": "view", "schema": "dbt_test_shopify_holistic", "name": "int__shopify_customer_rollup", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"email": {"type": "STRING", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "STRING", "index": 2, "name": "source_relation", "comment": null}, "customer_ids": {"type": "STRING", "index": 3, "name": "customer_ids", "comment": null}, "phone_numbers": {"type": "STRING", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "STRING", "index": 5, "name": "full_name", "comment": null}, "first_shopify_account_made_at": {"type": "TIMESTAMP", "index": 6, "name": "first_shopify_account_made_at", "comment": null}, "last_shopify_account_made_at": {"type": "TIMESTAMP", "index": 7, "name": "last_shopify_account_made_at", "comment": null}, "first_order_at": {"type": "TIMESTAMP", "index": 8, "name": "first_order_at", "comment": null}, "last_order_at": {"type": "TIMESTAMP", "index": 9, "name": "last_order_at", "comment": null}, "last_updated_at": {"type": "TIMESTAMP", "index": 10, "name": "last_updated_at", "comment": null}, "lifetime_total_spent": {"type": "FLOAT64", "index": 11, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "FLOAT64", "index": 12, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "FLOAT64", "index": 13, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "INT64", "index": 14, "name": "lifetime_count_orders", "comment": null}, "average_order_value": {"type": "FLOAT64", "index": 15, "name": "average_order_value", "comment": null}, "has_accepted_marketing": {"type": "BOOL", "index": 16, "name": "has_accepted_marketing", "comment": null}, "is_tax_exempt": {"type": "BOOL", "index": 17, "name": "is_tax_exempt", "comment": null}, "is_verified_email": {"type": "BOOL", "index": 18, "name": "is_verified_email", "comment": null}, "default_address_id": {"type": "INT64", "index": 19, "name": "default_address_id", "comment": null}, "account_state": {"type": "STRING", "index": 20, "name": "account_state", "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.shopify_holistic_reporting.int__shopify_customer_rollup"}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"metadata": {"type": "view", "schema": "dbt_test_shopify_holistic", "name": "int__daily_klaviyo_user_metrics", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "DATE", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "STRING", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "STRING", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 4, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "STRING", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "STRING", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "STRING", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "STRING", "index": 9, "name": "campaign_type", "comment": null}, "source_relation": {"type": "STRING", "index": 10, "name": "source_relation", "comment": null}, "first_event_at": {"type": "TIMESTAMP", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "TIMESTAMP", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "NUMERIC", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "NUMERIC", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "NUMERIC", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "NUMERIC", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "INT64", "index": 18, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "INT64", "index": 19, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "INT64", "index": 20, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "INT64", "index": 21, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "INT64", "index": 22, "name": "count_refunded_order", "comment": null}, "count_received_email": {"type": "INT64", "index": 23, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "INT64", "index": 24, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "INT64", "index": 25, "name": "count_opened_email", "comment": null}, "count_marked_email_as_spam": {"type": "INT64", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_unsubscribed": {"type": "INT64", "index": 27, "name": "count_unsubscribed", "comment": null}, "count_received_sms": {"type": "INT64", "index": 28, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "INT64", "index": 29, "name": "count_clicked_sms", "comment": null}, "count_sent_sms": {"type": "INT64", "index": 30, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "INT64", "index": 31, "name": "count_unsubscribed_from_sms", "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.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"metadata": {"type": "table", "schema": "dbt_test_shopify_holistic", "name": "shopify_holistic_reporting__daily_customer_metrics", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"date_day": {"type": "DATE", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "STRING", "index": 2, "name": "email", "comment": null}, "campaign_id": {"type": "STRING", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "STRING", "index": 4, "name": "flow_id", "comment": null}, "campaign_name": {"type": "STRING", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "STRING", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "STRING", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "STRING", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "STRING", "index": 9, "name": "campaign_type", "comment": null}, "shopify_total_orders": {"type": "INT64", "index": 10, "name": "shopify_total_orders", "comment": null}, "shopify_total_price": {"type": "FLOAT64", "index": 11, "name": "shopify_total_price", "comment": null}, "shopify_count_line_items": {"type": "INT64", "index": 12, "name": "shopify_count_line_items", "comment": null}, "shopify_total_line_items_price": {"type": "FLOAT64", "index": 13, "name": "shopify_total_line_items_price", "comment": null}, "shopify_total_discounts": {"type": "FLOAT64", "index": 14, "name": "shopify_total_discounts", "comment": null}, "shopify_total_tax": {"type": "INT64", "index": 15, "name": "shopify_total_tax", "comment": null}, "shopify_total_shipping_cost": {"type": "FLOAT64", "index": 16, "name": "shopify_total_shipping_cost", "comment": null}, "shopify_total_refund_subtotal": {"type": "NUMERIC", "index": 17, "name": "shopify_total_refund_subtotal", "comment": null}, "shopify_total_refund_tax": {"type": "NUMERIC", "index": 18, "name": "shopify_total_refund_tax", "comment": null}, "shopify_count_cancelled_orders": {"type": "INT64", "index": 19, "name": "shopify_count_cancelled_orders", "comment": null}, "shopify_count_products": {"type": "INT64", "index": 20, "name": "shopify_count_products", "comment": null}, "shopify_count_product_variants": {"type": "INT64", "index": 21, "name": "shopify_count_product_variants", "comment": null}, "shopify_sum_quantity": {"type": "INT64", "index": 22, "name": "shopify_sum_quantity", "comment": null}, "shopify_total_order_adjustment_amount": {"type": "INT64", "index": 23, "name": "shopify_total_order_adjustment_amount", "comment": null}, "shopify_total_order_adjustment_tax_amount": {"type": "FLOAT64", "index": 24, "name": "shopify_total_order_adjustment_tax_amount", "comment": null}, "shopify_source_relation": {"type": "STRING", "index": 25, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "TIMESTAMP", "index": 26, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "TIMESTAMP", "index": 27, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_sum_revenue_refunded_order": {"type": "NUMERIC", "index": 28, "name": "klaviyo_sum_revenue_refunded_order", "comment": null}, "klaviyo_sum_revenue_placed_order": {"type": "NUMERIC", "index": 29, "name": "klaviyo_sum_revenue_placed_order", "comment": null}, "klaviyo_sum_revenue_ordered_product": {"type": "NUMERIC", "index": 30, "name": "klaviyo_sum_revenue_ordered_product", "comment": null}, "klaviyo_sum_revenue_checkout_started": {"type": "NUMERIC", "index": 31, "name": "klaviyo_sum_revenue_checkout_started", "comment": null}, "klaviyo_sum_revenue_cancelled_order": {"type": "NUMERIC", "index": 32, "name": "klaviyo_sum_revenue_cancelled_order", "comment": null}, "klaviyo_count_active_on_site": {"type": "INT64", "index": 33, "name": "klaviyo_count_active_on_site", "comment": null}, "klaviyo_count_viewed_product": {"type": "INT64", "index": 34, "name": "klaviyo_count_viewed_product", "comment": null}, "klaviyo_count_ordered_product": {"type": "INT64", "index": 35, "name": "klaviyo_count_ordered_product", "comment": null}, "klaviyo_count_placed_order": {"type": "INT64", "index": 36, "name": "klaviyo_count_placed_order", "comment": null}, "klaviyo_count_refunded_order": {"type": "INT64", "index": 37, "name": "klaviyo_count_refunded_order", "comment": null}, "klaviyo_count_received_email": {"type": "INT64", "index": 38, "name": "klaviyo_count_received_email", "comment": null}, "klaviyo_count_clicked_email": {"type": "INT64", "index": 39, "name": "klaviyo_count_clicked_email", "comment": null}, "klaviyo_count_opened_email": {"type": "INT64", "index": 40, "name": "klaviyo_count_opened_email", "comment": null}, "klaviyo_count_marked_email_as_spam": {"type": "INT64", "index": 41, "name": "klaviyo_count_marked_email_as_spam", "comment": null}, "klaviyo_count_unsubscribed": {"type": "INT64", "index": 42, "name": "klaviyo_count_unsubscribed", "comment": null}, "klaviyo_count_received_sms": {"type": "INT64", "index": 43, "name": "klaviyo_count_received_sms", "comment": null}, "klaviyo_count_clicked_sms": {"type": "INT64", "index": 44, "name": "klaviyo_count_clicked_sms", "comment": null}, "klaviyo_count_sent_sms": {"type": "INT64", "index": 45, "name": "klaviyo_count_sent_sms", "comment": null}, "klaviyo_count_unsubscribed_from_sms": {"type": "INT64", "index": 46, "name": "klaviyo_count_unsubscribed_from_sms", "comment": null}, "klaviyo_source_relation": {"type": "STRING", "index": 47, "name": "klaviyo_source_relation", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 498.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.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"metadata": {"type": "table", "schema": "dbt_test_shopify_holistic", "name": "shopify_holistic_reporting__orders_attribution", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"order_id": {"type": "INT64", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "TIMESTAMP", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "TIMESTAMP", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "INT64", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "FLOAT64", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "FLOAT64", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "FLOAT64", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "INT64", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "STRING", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "FLOAT64", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "BOOL", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "INT64", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "STRING", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "INT64", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "STRING", "index": 15, "name": "name", "comment": null}, "note": {"type": "STRING", "index": 16, "name": "note", "comment": null}, "number": {"type": "INT64", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "INT64", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "INT64", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "TIMESTAMP", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "STRING", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "STRING", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "STRING", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "TIMESTAMP", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "STRING", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "INT64", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "STRING", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "STRING", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "STRING", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "STRING", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "STRING", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "STRING", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "STRING", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "STRING", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "STRING", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "STRING", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "STRING", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "STRING", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "STRING", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "STRING", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "STRING", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "STRING", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "STRING", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "STRING", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "INT64", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "STRING", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "STRING", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "BOOL", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "STRING", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "STRING", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "STRING", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "STRING", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "STRING", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "STRING", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "STRING", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "STRING", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "STRING", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "STRING", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "STRING", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "STRING", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "STRING", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "STRING", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "INT64", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "STRING", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "BOOL", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "STRING", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 67, "name": "_fivetran_synced", "comment": null}, "shipping_cost": {"type": "FLOAT64", "index": 68, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "INT64", "index": 69, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "FLOAT64", "index": 70, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "NUMERIC", "index": 71, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "NUMERIC", "index": 72, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "FLOAT64", "index": 73, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "INT64", "index": 74, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "INT64", "index": 75, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "STRING", "index": 76, "name": "new_vs_repeat", "comment": null}, "is_attributed": {"type": "BOOL", "index": 77, "name": "is_attributed", "comment": null}, "last_touch_campaign_id": {"type": "STRING", "index": 78, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "STRING", "index": 79, "name": "last_touch_flow_id", "comment": null}, "last_touch_variation_id": {"type": "STRING", "index": 80, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_name": {"type": "STRING", "index": 81, "name": "last_touch_campaign_name", "comment": null}, "last_touch_campaign_subject_line": {"type": "STRING", "index": 82, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "STRING", "index": 83, "name": "last_touch_campaign_type", "comment": null}, "last_touch_flow_name": {"type": "STRING", "index": 84, "name": "last_touch_flow_name", "comment": null}, "count_interactions_with_campaign": {"type": "INT64", "index": 85, "name": "count_interactions_with_campaign", "comment": null}, "count_interactions_with_flow": {"type": "INT64", "index": 86, "name": "count_interactions_with_flow", "comment": null}, "last_touch_event_id": {"type": "STRING", "index": 87, "name": "last_touch_event_id", "comment": null}, "last_touch_event_occurred_at": {"type": "TIMESTAMP", "index": 88, "name": "last_touch_event_occurred_at", "comment": null}, "last_touch_event_type": {"type": "STRING", "index": 89, "name": "last_touch_event_type", "comment": null}, "last_touch_integration_name": {"type": "STRING", "index": 90, "name": "last_touch_integration_name", "comment": null}, "last_touch_integration_category": {"type": "STRING", "index": 91, "name": "last_touch_integration_category", "comment": null}, "shopify_source_relation": {"type": "STRING", "index": 92, "name": "shopify_source_relation", "comment": null}, "klaviyo_source_relation": {"type": "STRING", "index": 93, "name": "klaviyo_source_relation", "comment": null}, "unique_order_key": {"type": "STRING", "index": 94, "name": "unique_order_key", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 3.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 4099.0, "include": true, "description": "Approximate size of table as reported by BigQuery"}, "partitioning_type": {"id": "partitioning_type", "label": "Partitioned By", "value": "created_timestamp", "include": true, "description": "The partitioning column for this table"}, "has_stats": {"id": "has_stats", "label": "Has Stats?", "value": true, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}}, "sources": {"source.klaviyo_source.klaviyo.event": {"metadata": {"type": "table", "schema": "klaviyo", "name": "event", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "_variation": {"type": "STRING", "index": 4, "name": "_variation", "comment": null}, "campaign_id": {"type": "STRING", "index": 5, "name": "campaign_id", "comment": null}, "datetime": {"type": "TIMESTAMP", "index": 6, "name": "datetime", "comment": null}, "flow_id": {"type": "STRING", "index": 7, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "STRING", "index": 8, "name": "flow_message_id", "comment": null}, "metric_id": {"type": "STRING", "index": 9, "name": "metric_id", "comment": null}, "person_id": {"type": "STRING", "index": 10, "name": "person_id", "comment": null}, "property_attribution": {"type": "STRING", "index": 11, "name": "property_attribution", "comment": null}, "property_campaign_name": {"type": "STRING", "index": 12, "name": "property_campaign_name", "comment": null}, "property_client_name": {"type": "STRING", "index": 13, "name": "property_client_name", "comment": null}, "property_client_os": {"type": "STRING", "index": 14, "name": "property_client_os", "comment": null}, "property_client_os_family": {"type": "STRING", "index": 15, "name": "property_client_os_family", "comment": null}, "property_client_type": {"type": "STRING", "index": 16, "name": "property_client_type", "comment": null}, "property_cohort_message_send_cohort": {"type": "STRING", "index": 17, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "STRING", "index": 18, "name": "property_email_domain", "comment": null}, "property_event_id": {"type": "STRING", "index": 19, "name": "property_event_id", "comment": null}, "property_message_interaction": {"type": "STRING", "index": 20, "name": "property_message_interaction", "comment": null}, "property_subject": {"type": "STRING", "index": 21, "name": "property_subject", "comment": null}, "timestamp": {"type": "TIMESTAMP", "index": 22, "name": "timestamp", "comment": null}, "type": {"type": "STRING", "index": 23, "name": "type", "comment": null}, "uuid": {"type": "STRING", "index": 24, "name": "uuid", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 11.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 3485.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.klaviyo_source.klaviyo.event"}, "source.klaviyo_source.klaviyo.flow": {"metadata": {"type": "table", "schema": "klaviyo", "name": "flow", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "created": {"type": "TIMESTAMP", "index": 4, "name": "created", "comment": null}, "customer_filter": {"type": "STRING", "index": 5, "name": "customer_filter", "comment": null}, "name": {"type": "STRING", "index": 6, "name": "name", "comment": null}, "status": {"type": "STRING", "index": 7, "name": "status", "comment": null}, "trigger": {"type": "STRING", "index": 8, "name": "trigger", "comment": null}, "updated": {"type": "TIMESTAMP", "index": 9, "name": "updated", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 6.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 1022.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.klaviyo_source.klaviyo.flow"}, "source.klaviyo_source.klaviyo.metric": {"metadata": {"type": "table", "schema": "klaviyo", "name": "metric", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "created": {"type": "TIMESTAMP", "index": 4, "name": "created", "comment": null}, "integration_id": {"type": "STRING", "index": 5, "name": "integration_id", "comment": null}, "name": {"type": "STRING", "index": 6, "name": "name", "comment": null}, "updated": {"type": "TIMESTAMP", "index": 7, "name": "updated", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 8.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 455.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.klaviyo_source.klaviyo.metric"}, "source.klaviyo_source.klaviyo.integration": {"metadata": {"type": "table", "schema": "klaviyo", "name": "integration", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "category": {"type": "STRING", "index": 4, "name": "category", "comment": null}, "name": {"type": "STRING", "index": 5, "name": "name", "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": 63.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.klaviyo_source.klaviyo.integration"}, "source.klaviyo_source.klaviyo.person": {"metadata": {"type": "table", "schema": "klaviyo", "name": "person", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "address_1": {"type": "STRING", "index": 4, "name": "address_1", "comment": null}, "address_2": {"type": "STRING", "index": 5, "name": "address_2", "comment": null}, "city": {"type": "STRING", "index": 6, "name": "city", "comment": null}, "country": {"type": "STRING", "index": 7, "name": "country", "comment": null}, "created": {"type": "TIMESTAMP", "index": 8, "name": "created", "comment": null}, "custom_email": {"type": "STRING", "index": 9, "name": "custom_email", "comment": null}, "custom_object": {"type": "STRING", "index": 10, "name": "custom_object", "comment": null}, "email": {"type": "STRING", "index": 11, "name": "email", "comment": null}, "first_name": {"type": "STRING", "index": 12, "name": "first_name", "comment": null}, "last_name": {"type": "STRING", "index": 13, "name": "last_name", "comment": null}, "latitude": {"type": "FLOAT64", "index": 14, "name": "latitude", "comment": null}, "longitude": {"type": "FLOAT64", "index": 15, "name": "longitude", "comment": null}, "organization": {"type": "STRING", "index": 16, "name": "organization", "comment": null}, "phone_number": {"type": "STRING", "index": 17, "name": "phone_number", "comment": null}, "region": {"type": "STRING", "index": 18, "name": "region", "comment": null}, "timezone": {"type": "STRING", "index": 19, "name": "timezone", "comment": null}, "title": {"type": "STRING", "index": 20, "name": "title", "comment": null}, "updated": {"type": "TIMESTAMP", "index": 21, "name": "updated", "comment": null}, "zip": {"type": "STRING", "index": 22, "name": "zip", "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": 147.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.klaviyo_source.klaviyo.person"}, "source.klaviyo_source.klaviyo.campaign": {"metadata": {"type": "table", "schema": "klaviyo", "name": "campaign", "database": "dbt-package-testing", "comment": null, "owner": null}, "columns": {"id": {"type": "STRING", "index": 1, "name": "id", "comment": null}, "_fivetran_deleted": {"type": "BOOL", "index": 2, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "TIMESTAMP", "index": 3, "name": "_fivetran_synced", "comment": null}, "campaign_type": {"type": "STRING", "index": 4, "name": "campaign_type", "comment": null}, "created": {"type": "TIMESTAMP", "index": 5, "name": "created", "comment": null}, "email_template_id": {"type": "STRING", "index": 6, "name": "email_template_id", "comment": null}, "from_email": {"type": "STRING", "index": 7, "name": "from_email", "comment": null}, "from_name": {"type": "STRING", "index": 8, "name": "from_name", "comment": null}, "is_segmented": {"type": "BOOL", "index": 9, "name": "is_segmented", "comment": null}, "name": {"type": "STRING", "index": 10, "name": "name", "comment": null}, "send_time": {"type": "TIMESTAMP", "index": 11, "name": "send_time", "comment": null}, "sent_at": {"type": "TIMESTAMP", "index": 12, "name": "sent_at", "comment": null}, "status": {"type": "STRING", "index": 13, "name": "status", "comment": null}, "status_id": {"type": "STRING", "index": 14, "name": "status_id", "comment": null}, "status_label": {"type": "STRING", "index": 15, "name": "status_label", "comment": null}, "subject": {"type": "STRING", "index": 16, "name": "subject", "comment": null}, "updated": {"type": "TIMESTAMP", "index": 17, "name": "updated", "comment": null}}, "stats": {"num_rows": {"id": "num_rows", "label": "# Rows", "value": 4.0, "include": true, "description": "Approximate count of rows in this table"}, "num_bytes": {"id": "num_bytes", "label": "Approximate Size", "value": 630.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.klaviyo_source.klaviyo.campaign"}}, "errors": null} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.3.0", "generated_at": "2022-10-28T17:32:18.565077Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.shopify_holistic_reporting_integration_tests.campaign"}, "seed.shopify_holistic_reporting_integration_tests.event": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, "seed.shopify_holistic_reporting_integration_tests.flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.shopify_holistic_reporting_integration_tests.flow"}, "seed.shopify_holistic_reporting_integration_tests.integration": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.shopify_holistic_reporting_integration_tests.integration"}, "seed.shopify_holistic_reporting_integration_tests.metric": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.metric"}, "seed.shopify_holistic_reporting_integration_tests.person": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.shopify_holistic_reporting_integration_tests.person"}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_customer_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_adjustment_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_holistic_reporting_integration_tests.shopify_order_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_line_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_line_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_product_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_holistic_reporting_integration_tests.shopify_product_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_product_variant_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_transaction_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__campaign_flow_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"last_touch_campaign_id": {"type": "character varying", "index": 1, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 2, "name": "last_touch_flow_id", "comment": null}, "variation_id": {"type": "text", "index": 3, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 5, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 6, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 7, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 8, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 9, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 10, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 11, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 12, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 13, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 14, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 15, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 16, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 17, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 18, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 19, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 20, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 21, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 22, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 23, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 24, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 25, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 26, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 27, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 28, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 29, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 30, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 31, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 32, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 33, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 34, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 35, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 36, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 37, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 38, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 39, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 40, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 41, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 42, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 43, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 44, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 45, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 46, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 47, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 48, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 49, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 50, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 51, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 52, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 53, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 54, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 55, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 56, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 57, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 58, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 59, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 60, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 62, "name": "unique_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__campaign_flow_metrics"}, "model.klaviyo.int_klaviyo__event_attribution": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__event_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 16, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 17, "name": "touch_type", "comment": null}, "touch_session": {"type": "bigint", "index": 18, "name": "touch_session", "comment": null}, "session_start_at": {"type": "timestamp without time zone", "index": 19, "name": "session_start_at", "comment": null}, "session_event_type": {"type": "text", "index": 20, "name": "session_event_type", "comment": null}, "last_touch_id": {"type": "character varying", "index": 21, "name": "last_touch_id", "comment": null}, "session_touch_type": {"type": "text", "index": 22, "name": "session_touch_type", "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.klaviyo.int_klaviyo__event_attribution"}, "model.klaviyo.int_klaviyo__person_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__person_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 3, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 4, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 5, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 6, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 7, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 8, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 9, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 10, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 11, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 12, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 13, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 16, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 17, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 18, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 19, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 20, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 21, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 22, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 23, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 24, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 25, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 26, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 27, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 28, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 29, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 30, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 31, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 32, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 33, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 34, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 35, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 36, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 37, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 38, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 39, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 40, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 41, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 42, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 43, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 44, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 45, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__person_metrics"}, "model.klaviyo.klaviyo__campaigns": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__campaigns", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 16, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 17, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 18, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 19, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 20, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 21, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 22, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 23, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 24, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 25, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 26, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 27, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 28, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 29, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 30, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 31, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 32, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 33, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 34, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 35, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 36, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 37, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 38, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 39, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 40, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 41, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 42, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 43, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 44, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 45, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 46, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 47, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 48, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 49, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 50, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 52, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 53, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 54, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 55, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 56, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 57, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 58, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 59, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 60, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 61, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 62, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 63, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 64, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 65, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 66, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 67, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 68, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 69, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 70, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 71, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 72, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 73, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 74, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "campaign_variation_key": {"type": "text", "index": 75, "name": "campaign_variation_key", "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.klaviyo.klaviyo__campaigns"}, "model.klaviyo.klaviyo__events": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "uuid": {"type": "text", "index": 9, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 10, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 13, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 14, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 15, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 16, "name": "touch_type", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 18, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 19, "name": "last_touch_flow_id", "comment": null}, "last_touch_at": {"type": "timestamp without time zone", "index": 20, "name": "last_touch_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 21, "name": "last_touch_event_type", "comment": null}, "last_touch_type": {"type": "text", "index": 22, "name": "last_touch_type", "comment": null}, "campaign_name": {"type": "text", "index": 23, "name": "campaign_name", "comment": null}, "campaign_type": {"type": "text", "index": 24, "name": "campaign_type", "comment": null}, "campaign_subject_line": {"type": "text", "index": 25, "name": "campaign_subject_line", "comment": null}, "flow_name": {"type": "text", "index": 26, "name": "flow_name", "comment": null}, "person_city": {"type": "text", "index": 27, "name": "person_city", "comment": null}, "person_country": {"type": "text", "index": 28, "name": "person_country", "comment": null}, "person_region": {"type": "text", "index": 29, "name": "person_region", "comment": null}, "person_email": {"type": "text", "index": 30, "name": "person_email", "comment": null}, "person_timezone": {"type": "text", "index": 31, "name": "person_timezone", "comment": null}, "integration_name": {"type": "text", "index": 32, "name": "integration_name", "comment": null}, "integration_category": {"type": "text", "index": 33, "name": "integration_category", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo.klaviyo__events"}, "model.klaviyo.klaviyo__flows": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__flows", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 9, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 10, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 18, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 19, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 20, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 21, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 22, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 23, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 24, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 25, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 26, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 27, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 28, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 29, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 30, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 31, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 32, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 33, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 34, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 35, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 36, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 37, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 38, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 39, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 40, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 42, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 43, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 44, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 45, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 46, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 47, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 48, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 49, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 50, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 51, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 52, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 53, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 54, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 55, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 56, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 57, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 58, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 59, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 60, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 61, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 62, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 63, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 64, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 65, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 66, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 67, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "flow_variation_key": {"type": "text", "index": 68, "name": "flow_variation_key", "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.klaviyo.klaviyo__flows"}, "model.klaviyo.klaviyo__person_campaign_flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__person_campaign_flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 2, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 3, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 5, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 6, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 7, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 8, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 9, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 10, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 11, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 12, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 13, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 14, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 15, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 16, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 17, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 18, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 19, "name": "count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "bigint", "index": 20, "name": "count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "bigint", "index": 21, "name": "count_fulfilled_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 22, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 23, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 24, "name": "count_opened_email", "comment": null}, "count_bounced_email": {"type": "bigint", "index": 25, "name": "count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "bigint", "index": 27, "name": "count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "bigint", "index": 28, "name": "count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "bigint", "index": 29, "name": "count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 30, "name": "count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "bigint", "index": 31, "name": "count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "bigint", "index": 32, "name": "count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "bigint", "index": 33, "name": "count_merged_profile", "comment": null}, "count_received_sms": {"type": "bigint", "index": 34, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 35, "name": "count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "bigint", "index": 36, "name": "count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 37, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 38, "name": "count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "bigint", "index": 39, "name": "count_failed_to_deliver_sms", "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.klaviyo.klaviyo__person_campaign_flow"}, "model.klaviyo.klaviyo__persons": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__persons", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 19, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 20, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 21, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 22, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 23, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 24, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 25, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 26, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 27, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 31, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 33, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 35, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 37, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 38, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 39, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 40, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 41, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 42, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 43, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 44, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 45, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 46, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 47, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 48, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 49, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 50, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 53, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 54, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 55, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 56, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 57, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 58, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 59, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 60, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.klaviyo__persons"}, "model.shopify.shopify__calendar": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__calendar", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "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.shopify.shopify__calendar"}, "model.shopify.shopify__customer_cohorts": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__customer_cohorts", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_month": {"type": "timestamp without time zone", "index": 1, "name": "date_month", "comment": null}, "customer_id": {"type": "bigint", "index": 2, "name": "customer_id", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "first_order_timestamp", "comment": null}, "cohort_month": {"type": "timestamp without time zone", "index": 4, "name": "cohort_month", "comment": null}, "source_relation": {"type": "text", "index": 5, "name": "source_relation", "comment": null}, "order_count_in_month": {"type": "bigint", "index": 6, "name": "order_count_in_month", "comment": null}, "total_price_in_month": {"type": "double precision", "index": 7, "name": "total_price_in_month", "comment": null}, "line_item_count_in_month": {"type": "numeric", "index": 8, "name": "line_item_count_in_month", "comment": null}, "total_price_lifetime": {"type": "double precision", "index": 9, "name": "total_price_lifetime", "comment": null}, "order_count_lifetime": {"type": "numeric", "index": 10, "name": "order_count_lifetime", "comment": null}, "line_item_count_lifetime": {"type": "numeric", "index": 11, "name": "line_item_count_lifetime", "comment": null}, "cohort_month_number": {"type": "bigint", "index": 12, "name": "cohort_month_number", "comment": null}, "customer_cohort_id": {"type": "text", "index": 13, "name": "customer_cohort_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.shopify.shopify__customer_cohorts"}, "model.shopify.shopify__customers": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__customers", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "phone": {"type": "integer", "index": 9, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 10, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 11, "name": "is_tax_exempt", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 12, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 13, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 14, "name": "source_relation", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 15, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 16, "name": "most_recent_order_timestamp", "comment": null}, "average_order_value": {"type": "double precision", "index": 17, "name": "average_order_value", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 18, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 19, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 20, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "bigint", "index": 21, "name": "lifetime_count_orders", "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.shopify.shopify__customers"}, "model.shopify.shopify__order_lines": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__order_lines", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "comment": null}, "refunded_quantity": {"type": "bigint", "index": 28, "name": "refunded_quantity", "comment": null}, "refunded_subtotal": {"type": "numeric", "index": 29, "name": "refunded_subtotal", "comment": null}, "quantity_net_refunds": {"type": "bigint", "index": 30, "name": "quantity_net_refunds", "comment": null}, "subtotal_net_refunds": {"type": "numeric", "index": 31, "name": "subtotal_net_refunds", "comment": null}, "variant_created_at": {"type": "text", "index": 32, "name": "variant_created_at", "comment": null}, "variant_updated_at": {"type": "text", "index": 33, "name": "variant_updated_at", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 34, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 35, "name": "image_id", "comment": null}, "variant_title": {"type": "text", "index": 36, "name": "variant_title", "comment": null}, "variant_price": {"type": "integer", "index": 37, "name": "variant_price", "comment": null}, "variant_sku": {"type": "integer", "index": 38, "name": "variant_sku", "comment": null}, "variant_position": {"type": "integer", "index": 39, "name": "variant_position", "comment": null}, "variant_inventory_policy": {"type": "text", "index": 40, "name": "variant_inventory_policy", "comment": null}, "variant_compare_at_price": {"type": "integer", "index": 41, "name": "variant_compare_at_price", "comment": null}, "variant_fulfillment_service": {"type": "text", "index": 42, "name": "variant_fulfillment_service", "comment": null}, "variant_inventory_management": {"type": "text", "index": 43, "name": "variant_inventory_management", "comment": null}, "variant_is_taxable": {"type": "boolean", "index": 44, "name": "variant_is_taxable", "comment": null}, "variant_barcode": {"type": "integer", "index": 45, "name": "variant_barcode", "comment": null}, "variant_grams": {"type": "integer", "index": 46, "name": "variant_grams", "comment": null}, "variant_inventory_quantity": {"type": "integer", "index": 47, "name": "variant_inventory_quantity", "comment": null}, "variant_weight": {"type": "integer", "index": 48, "name": "variant_weight", "comment": null}, "variant_weight_unit": {"type": "text", "index": 49, "name": "variant_weight_unit", "comment": null}, "variant_option_1": {"type": "text", "index": 50, "name": "variant_option_1", "comment": null}, "variant_option_2": {"type": "integer", "index": 51, "name": "variant_option_2", "comment": null}, "variant_option_3": {"type": "integer", "index": 52, "name": "variant_option_3", "comment": null}, "variant_tax_code": {"type": "text", "index": 53, "name": "variant_tax_code", "comment": null}, "variant_is_requiring_shipping": {"type": "boolean", "index": 54, "name": "variant_is_requiring_shipping", "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.shopify.shopify__order_lines"}, "model.shopify.shopify__orders": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "comment": null}, "shipping_cost": {"type": "double precision", "index": 69, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 70, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 71, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 72, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 73, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 74, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 75, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 76, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 77, "name": "new_vs_repeat", "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.shopify.shopify__orders"}, "model.shopify.shopify__products": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__products", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "quantity_sold": {"type": "bigint", "index": 13, "name": "quantity_sold", "comment": null}, "subtotal_sold": {"type": "bigint", "index": 14, "name": "subtotal_sold", "comment": null}, "quantity_sold_net_refunds": {"type": "numeric", "index": 15, "name": "quantity_sold_net_refunds", "comment": null}, "subtotal_sold_net_refunds": {"type": "numeric", "index": 16, "name": "subtotal_sold_net_refunds", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 17, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 18, "name": "most_recent_order_timestamp", "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.shopify.shopify__products"}, "model.shopify.shopify__transactions": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__transactions", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "comment": null}, "exchange_rate": {"type": "numeric", "index": 33, "name": "exchange_rate", "comment": null}, "currency_exchange_calculated_amount": {"type": "double precision", "index": 34, "name": "currency_exchange_calculated_amount", "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.shopify.shopify__transactions"}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__daily_klaviyo_user_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 18, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 19, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 20, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 21, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 22, "name": "count_refunded_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 23, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 24, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 25, "name": "count_opened_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 27, "name": "count_unsubscribed", "comment": null}, "count_received_sms": {"type": "bigint", "index": 28, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 29, "name": "count_clicked_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 30, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 31, "name": "count_unsubscribed_from_sms", "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.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__daily_shopify_customer_orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 5, "name": "last_touch_campaign_name", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 6, "name": "last_touch_flow_name", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 7, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 8, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 9, "name": "last_touch_campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "total_orders": {"type": "bigint", "index": 11, "name": "total_orders", "comment": null}, "total_price": {"type": "double precision", "index": 12, "name": "total_price", "comment": null}, "count_line_items": {"type": "numeric", "index": 13, "name": "count_line_items", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 14, "name": "total_line_items_price", "comment": null}, "total_discounts": {"type": "double precision", "index": 15, "name": "total_discounts", "comment": null}, "total_tax": {"type": "bigint", "index": 16, "name": "total_tax", "comment": null}, "total_shipping_cost": {"type": "double precision", "index": 17, "name": "total_shipping_cost", "comment": null}, "total_refund_subtotal": {"type": "numeric", "index": 18, "name": "total_refund_subtotal", "comment": null}, "total_refund_tax": {"type": "numeric", "index": 19, "name": "total_refund_tax", "comment": null}, "count_cancelled_orders": {"type": "bigint", "index": 20, "name": "count_cancelled_orders", "comment": null}, "count_products": {"type": "numeric", "index": 21, "name": "count_products", "comment": null}, "count_product_variants": {"type": "numeric", "index": 22, "name": "count_product_variants", "comment": null}, "sum_quantity": {"type": "numeric", "index": 23, "name": "sum_quantity", "comment": null}, "total_order_adjustment_amount": {"type": "numeric", "index": 24, "name": "total_order_adjustment_amount", "comment": null}, "total_order_adjustment_tax_amount": {"type": "double precision", "index": 25, "name": "total_order_adjustment_tax_amount", "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.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__klaviyo_person_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "person_ids": {"type": "text", "index": 3, "name": "person_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_klaviyo_account_made_at": {"type": "text", "index": 6, "name": "first_klaviyo_account_made_at", "comment": null}, "last_klaviyo_account_made_at": {"type": "text", "index": 7, "name": "last_klaviyo_account_made_at", "comment": null}, "last_updated_at": {"type": "text", "index": 8, "name": "last_updated_at", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 9, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 10, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 11, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 12, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 13, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 14, "name": "last_flow_touch_at", "comment": null}, "count_total_campaigns": {"type": "numeric", "index": 15, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "numeric", "index": 16, "name": "count_total_flows", "comment": null}, "address_1": {"type": "text", "index": 17, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 18, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 19, "name": "city", "comment": null}, "country": {"type": "text", "index": 20, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 21, "name": "zip", "comment": null}, "latitude": {"type": "double precision", "index": 22, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 23, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 24, "name": "organization", "comment": null}, "region": {"type": "text", "index": 25, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 26, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 27, "name": "title", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 29, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 31, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 33, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 35, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 37, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 38, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 39, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 40, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 41, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 42, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 43, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 44, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 45, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 46, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 47, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 48, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 49, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 50, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 53, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 54, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 55, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 56, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 57, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 58, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 59, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 60, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 61, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 62, "name": "total_count_failed_to_deliver_sms", "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.shopify_holistic_reporting.int__klaviyo_person_rollup"}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__shopify_customer_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "customer_ids": {"type": "text", "index": 3, "name": "customer_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_shopify_account_made_at": {"type": "timestamp without time zone", "index": 6, "name": "first_shopify_account_made_at", "comment": null}, "last_shopify_account_made_at": {"type": "timestamp without time zone", "index": 7, "name": "last_shopify_account_made_at", "comment": null}, "first_order_at": {"type": "timestamp without time zone", "index": 8, "name": "first_order_at", "comment": null}, "last_order_at": {"type": "timestamp without time zone", "index": 9, "name": "last_order_at", "comment": null}, "last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "last_updated_at", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 11, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 12, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 13, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "numeric", "index": 14, "name": "lifetime_count_orders", "comment": null}, "average_order_value": {"type": "double precision", "index": 15, "name": "average_order_value", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 16, "name": "has_accepted_marketing", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 17, "name": "is_tax_exempt", "comment": null}, "is_verified_email": {"type": "boolean", "index": 18, "name": "is_verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 19, "name": "default_address_id", "comment": null}, "account_state": {"type": "text", "index": 20, "name": "account_state", "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.shopify_holistic_reporting.int__shopify_customer_rollup"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__customer_enhanced", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 2, "name": "full_name", "comment": null}, "shopify_customer_ids": {"type": "text", "index": 3, "name": "shopify_customer_ids", "comment": null}, "klaviyo_person_ids": {"type": "text", "index": 4, "name": "klaviyo_person_ids", "comment": null}, "phone_number": {"type": "text", "index": 5, "name": "phone_number", "comment": null}, "shopify_customer_first_created_at": {"type": "timestamp without time zone", "index": 6, "name": "shopify_customer_first_created_at", "comment": null}, "shopify_customer_last_created_at": {"type": "timestamp without time zone", "index": 7, "name": "shopify_customer_last_created_at", "comment": null}, "klaviyo_person_first_created_at": {"type": "text", "index": 8, "name": "klaviyo_person_first_created_at", "comment": null}, "klaviyo_person_last_created_at": {"type": "text", "index": 9, "name": "klaviyo_person_last_created_at", "comment": null}, "shopify_customer_last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "shopify_customer_last_updated_at", "comment": null}, "klaviyo_person_last_updated_at": {"type": "text", "index": 11, "name": "klaviyo_person_last_updated_at", "comment": null}, "is_shopify_email_verified": {"type": "boolean", "index": 12, "name": "is_shopify_email_verified", "comment": null}, "shopify_first_order_at": {"type": "timestamp without time zone", "index": 13, "name": "shopify_first_order_at", "comment": null}, "shopify_last_order_at": {"type": "timestamp without time zone", "index": 14, "name": "shopify_last_order_at", "comment": null}, "shopify_lifetime_total_spent": {"type": "double precision", "index": 15, "name": "shopify_lifetime_total_spent", "comment": null}, "shopify_lifetime_total_refunded": {"type": "double precision", "index": 16, "name": "shopify_lifetime_total_refunded", "comment": null}, "shopify_lifetime_total_amount": {"type": "double precision", "index": 17, "name": "shopify_lifetime_total_amount", "comment": null}, "shopify_lifetime_count_orders": {"type": "numeric", "index": 18, "name": "shopify_lifetime_count_orders", "comment": null}, "shopify_average_order_value": {"type": "double precision", "index": 19, "name": "shopify_average_order_value", "comment": null}, "shopify_has_accepted_marketing": {"type": "boolean", "index": 20, "name": "shopify_has_accepted_marketing", "comment": null}, "shopify_is_tax_exempt": {"type": "boolean", "index": 21, "name": "shopify_is_tax_exempt", "comment": null}, "shopify_default_address_id": {"type": "bigint", "index": 22, "name": "shopify_default_address_id", "comment": null}, "shopify_account_state": {"type": "text", "index": 23, "name": "shopify_account_state", "comment": null}, "shopify_source_relation": {"type": "text", "index": 24, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 25, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_first_campaign_touch_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_first_campaign_touch_at", "comment": null}, "klaviyo_last_campaign_touch_at": {"type": "timestamp without time zone", "index": 28, "name": "klaviyo_last_campaign_touch_at", "comment": null}, "klaviyo_first_flow_touch_at": {"type": "timestamp without time zone", "index": 29, "name": "klaviyo_first_flow_touch_at", "comment": null}, "klaviyo_last_flow_touch_at": {"type": "timestamp without time zone", "index": 30, "name": "klaviyo_last_flow_touch_at", "comment": null}, "klaviyo_count_total_campaigns": {"type": "numeric", "index": 31, "name": "klaviyo_count_total_campaigns", "comment": null}, "klaviyo_count_total_flows": {"type": "numeric", "index": 32, "name": "klaviyo_count_total_flows", "comment": null}, "klaviyo_address_1": {"type": "text", "index": 33, "name": "klaviyo_address_1", "comment": null}, "klaviyo_address_2": {"type": "integer", "index": 34, "name": "klaviyo_address_2", "comment": null}, "klaviyo_city": {"type": "text", "index": 35, "name": "klaviyo_city", "comment": null}, "klaviyo_country": {"type": "text", "index": 36, "name": "klaviyo_country", "comment": null}, "klaviyo_zip": {"type": "integer", "index": 37, "name": "klaviyo_zip", "comment": null}, "klaviyo_latitude": {"type": "double precision", "index": 38, "name": "klaviyo_latitude", "comment": null}, "klaviyo_longitude": {"type": "double precision", "index": 39, "name": "klaviyo_longitude", "comment": null}, "klaviyo_organization": {"type": "integer", "index": 40, "name": "klaviyo_organization", "comment": null}, "klaviyo_region": {"type": "text", "index": 41, "name": "klaviyo_region", "comment": null}, "klaviyo_timezone": {"type": "text", "index": 42, "name": "klaviyo_timezone", "comment": null}, "klaviyo_title": {"type": "integer", "index": 43, "name": "klaviyo_title", "comment": null}, "klaviyo_total_sum_revenue_refunded_order": {"type": "numeric", "index": 44, "name": "klaviyo_total_sum_revenue_refunded_order", "comment": null}, "klaviyo_organic_sum_revenue_refunded_order": {"type": "numeric", "index": 45, "name": "klaviyo_organic_sum_revenue_refunded_order", "comment": null}, "klaviyo_total_sum_revenue_placed_order": {"type": "numeric", "index": 46, "name": "klaviyo_total_sum_revenue_placed_order", "comment": null}, "klaviyo_organic_sum_revenue_placed_order": {"type": "numeric", "index": 47, "name": "klaviyo_organic_sum_revenue_placed_order", "comment": null}, "klaviyo_total_sum_revenue_ordered_product": {"type": "numeric", "index": 48, "name": "klaviyo_total_sum_revenue_ordered_product", "comment": null}, "klaviyo_organic_sum_revenue_ordered_product": {"type": "numeric", "index": 49, "name": "klaviyo_organic_sum_revenue_ordered_product", "comment": null}, "klaviyo_total_sum_revenue_checkout_started": {"type": "numeric", "index": 50, "name": "klaviyo_total_sum_revenue_checkout_started", "comment": null}, "klaviyo_organic_sum_revenue_checkout_started": {"type": "numeric", "index": 51, "name": "klaviyo_organic_sum_revenue_checkout_started", "comment": null}, "klaviyo_total_sum_revenue_cancelled_order": {"type": "numeric", "index": 52, "name": "klaviyo_total_sum_revenue_cancelled_order", "comment": null}, "klaviyo_organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 53, "name": "klaviyo_organic_sum_revenue_cancelled_order", "comment": null}, "klaviyo_total_count_active_on_site": {"type": "numeric", "index": 54, "name": "klaviyo_total_count_active_on_site", "comment": null}, "klaviyo_total_count_viewed_product": {"type": "numeric", "index": 55, "name": "klaviyo_total_count_viewed_product", "comment": null}, "klaviyo_total_count_ordered_product": {"type": "numeric", "index": 56, "name": "klaviyo_total_count_ordered_product", "comment": null}, "klaviyo_total_count_placed_order": {"type": "numeric", "index": 57, "name": "klaviyo_total_count_placed_order", "comment": null}, "klaviyo_total_count_refunded_order": {"type": "numeric", "index": 58, "name": "klaviyo_total_count_refunded_order", "comment": null}, "klaviyo_total_count_cancelled_order": {"type": "numeric", "index": 59, "name": "klaviyo_total_count_cancelled_order", "comment": null}, "klaviyo_total_count_fulfilled_order": {"type": "numeric", "index": 60, "name": "klaviyo_total_count_fulfilled_order", "comment": null}, "klaviyo_total_count_received_email": {"type": "numeric", "index": 61, "name": "klaviyo_total_count_received_email", "comment": null}, "klaviyo_total_count_clicked_email": {"type": "numeric", "index": 62, "name": "klaviyo_total_count_clicked_email", "comment": null}, "klaviyo_total_count_opened_email": {"type": "numeric", "index": 63, "name": "klaviyo_total_count_opened_email", "comment": null}, "klaviyo_total_count_bounced_email": {"type": "numeric", "index": 64, "name": "klaviyo_total_count_bounced_email", "comment": null}, "klaviyo_total_count_marked_email_as_spam": {"type": "numeric", "index": 65, "name": "klaviyo_total_count_marked_email_as_spam", "comment": null}, "klaviyo_total_count_dropped_email": {"type": "numeric", "index": 66, "name": "klaviyo_total_count_dropped_email", "comment": null}, "klaviyo_total_count_subscribed_to_list": {"type": "numeric", "index": 67, "name": "klaviyo_total_count_subscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed_to_list": {"type": "numeric", "index": 68, "name": "klaviyo_total_count_unsubscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed": {"type": "numeric", "index": 69, "name": "klaviyo_total_count_unsubscribed", "comment": null}, "klaviyo_total_count_updated_email_preferences": {"type": "numeric", "index": 70, "name": "klaviyo_total_count_updated_email_preferences", "comment": null}, "klaviyo_total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 71, "name": "klaviyo_total_count_subscribed_to_back_in_stock", "comment": null}, "klaviyo_total_count_merged_profile": {"type": "numeric", "index": 72, "name": "klaviyo_total_count_merged_profile", "comment": null}, "klaviyo_total_count_received_sms": {"type": "numeric", "index": 73, "name": "klaviyo_total_count_received_sms", "comment": null}, "klaviyo_total_count_clicked_sms": {"type": "numeric", "index": 74, "name": "klaviyo_total_count_clicked_sms", "comment": null}, "klaviyo_total_count_consented_to_receive_sms": {"type": "numeric", "index": 75, "name": "klaviyo_total_count_consented_to_receive_sms", "comment": null}, "klaviyo_total_count_sent_sms": {"type": "numeric", "index": 76, "name": "klaviyo_total_count_sent_sms", "comment": null}, "klaviyo_total_count_unsubscribed_from_sms": {"type": "numeric", "index": 77, "name": "klaviyo_total_count_unsubscribed_from_sms", "comment": null}, "klaviyo_total_count_failed_to_deliver_sms": {"type": "numeric", "index": 78, "name": "klaviyo_total_count_failed_to_deliver_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 79, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__daily_customer_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "shopify_total_orders": {"type": "bigint", "index": 10, "name": "shopify_total_orders", "comment": null}, "shopify_total_price": {"type": "double precision", "index": 11, "name": "shopify_total_price", "comment": null}, "shopify_count_line_items": {"type": "numeric", "index": 12, "name": "shopify_count_line_items", "comment": null}, "shopify_total_line_items_price": {"type": "double precision", "index": 13, "name": "shopify_total_line_items_price", "comment": null}, "shopify_total_discounts": {"type": "double precision", "index": 14, "name": "shopify_total_discounts", "comment": null}, "shopify_total_tax": {"type": "bigint", "index": 15, "name": "shopify_total_tax", "comment": null}, "shopify_total_shipping_cost": {"type": "double precision", "index": 16, "name": "shopify_total_shipping_cost", "comment": null}, "shopify_total_refund_subtotal": {"type": "numeric", "index": 17, "name": "shopify_total_refund_subtotal", "comment": null}, "shopify_total_refund_tax": {"type": "numeric", "index": 18, "name": "shopify_total_refund_tax", "comment": null}, "shopify_count_cancelled_orders": {"type": "bigint", "index": 19, "name": "shopify_count_cancelled_orders", "comment": null}, "shopify_count_products": {"type": "numeric", "index": 20, "name": "shopify_count_products", "comment": null}, "shopify_count_product_variants": {"type": "numeric", "index": 21, "name": "shopify_count_product_variants", "comment": null}, "shopify_sum_quantity": {"type": "numeric", "index": 22, "name": "shopify_sum_quantity", "comment": null}, "shopify_total_order_adjustment_amount": {"type": "numeric", "index": 23, "name": "shopify_total_order_adjustment_amount", "comment": null}, "shopify_total_order_adjustment_tax_amount": {"type": "double precision", "index": 24, "name": "shopify_total_order_adjustment_tax_amount", "comment": null}, "shopify_source_relation": {"type": "text", "index": 25, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "klaviyo_sum_revenue_refunded_order", "comment": null}, "klaviyo_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "klaviyo_sum_revenue_placed_order", "comment": null}, "klaviyo_sum_revenue_ordered_product": {"type": "numeric", "index": 30, "name": "klaviyo_sum_revenue_ordered_product", "comment": null}, "klaviyo_sum_revenue_checkout_started": {"type": "numeric", "index": 31, "name": "klaviyo_sum_revenue_checkout_started", "comment": null}, "klaviyo_sum_revenue_cancelled_order": {"type": "numeric", "index": 32, "name": "klaviyo_sum_revenue_cancelled_order", "comment": null}, "klaviyo_count_active_on_site": {"type": "bigint", "index": 33, "name": "klaviyo_count_active_on_site", "comment": null}, "klaviyo_count_viewed_product": {"type": "bigint", "index": 34, "name": "klaviyo_count_viewed_product", "comment": null}, "klaviyo_count_ordered_product": {"type": "bigint", "index": 35, "name": "klaviyo_count_ordered_product", "comment": null}, "klaviyo_count_placed_order": {"type": "bigint", "index": 36, "name": "klaviyo_count_placed_order", "comment": null}, "klaviyo_count_refunded_order": {"type": "bigint", "index": 37, "name": "klaviyo_count_refunded_order", "comment": null}, "klaviyo_count_received_email": {"type": "bigint", "index": 38, "name": "klaviyo_count_received_email", "comment": null}, "klaviyo_count_clicked_email": {"type": "bigint", "index": 39, "name": "klaviyo_count_clicked_email", "comment": null}, "klaviyo_count_opened_email": {"type": "bigint", "index": 40, "name": "klaviyo_count_opened_email", "comment": null}, "klaviyo_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "klaviyo_count_marked_email_as_spam", "comment": null}, "klaviyo_count_unsubscribed": {"type": "bigint", "index": 42, "name": "klaviyo_count_unsubscribed", "comment": null}, "klaviyo_count_received_sms": {"type": "bigint", "index": 43, "name": "klaviyo_count_received_sms", "comment": null}, "klaviyo_count_clicked_sms": {"type": "bigint", "index": 44, "name": "klaviyo_count_clicked_sms", "comment": null}, "klaviyo_count_sent_sms": {"type": "bigint", "index": 45, "name": "klaviyo_count_sent_sms", "comment": null}, "klaviyo_count_unsubscribed_from_sms": {"type": "bigint", "index": 46, "name": "klaviyo_count_unsubscribed_from_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 47, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__orders_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "shipping_cost": {"type": "double precision", "index": 68, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 69, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 70, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 71, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 72, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 73, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 74, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 75, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 76, "name": "new_vs_repeat", "comment": null}, "is_attributed": {"type": "boolean", "index": 77, "name": "is_attributed", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 78, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 79, "name": "last_touch_flow_id", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 80, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 81, "name": "last_touch_campaign_name", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 82, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 83, "name": "last_touch_campaign_type", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 84, "name": "last_touch_flow_name", "comment": null}, "count_interactions_with_campaign": {"type": "bigint", "index": 85, "name": "count_interactions_with_campaign", "comment": null}, "count_interactions_with_flow": {"type": "bigint", "index": 86, "name": "count_interactions_with_flow", "comment": null}, "last_touch_event_id": {"type": "text", "index": 87, "name": "last_touch_event_id", "comment": null}, "last_touch_event_occurred_at": {"type": "timestamp without time zone", "index": 88, "name": "last_touch_event_occurred_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 89, "name": "last_touch_event_type", "comment": null}, "last_touch_integration_name": {"type": "text", "index": 90, "name": "last_touch_integration_name", "comment": null}, "last_touch_integration_category": {"type": "text", "index": 91, "name": "last_touch_integration_category", "comment": null}, "shopify_source_relation": {"type": "text", "index": 92, "name": "shopify_source_relation", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 93, "name": "klaviyo_source_relation", "comment": null}, "unique_order_key": {"type": "text", "index": 94, "name": "unique_order_key", "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.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, "model.klaviyo_source.stg_klaviyo__campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__campaign"}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__campaign_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.klaviyo_source.stg_klaviyo__campaign_tmp"}, "model.klaviyo_source.stg_klaviyo__event": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_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.klaviyo_source.stg_klaviyo__event"}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__event_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, "model.klaviyo_source.stg_klaviyo__flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__flow"}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__flow_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.klaviyo_source.stg_klaviyo__flow_tmp"}, "model.klaviyo_source.stg_klaviyo__integration": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"category": {"type": "text", "index": 1, "name": "category", "comment": null}, "integration_id": {"type": "text", "index": 2, "name": "integration_id", "comment": null}, "integration_name": {"type": "text", "index": 3, "name": "integration_name", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__integration"}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__integration_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.klaviyo_source.stg_klaviyo__integration_tmp"}, "model.klaviyo_source.stg_klaviyo__metric": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "metric_id": {"type": "text", "index": 2, "name": "metric_id", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "metric_name": {"type": "text", "index": 4, "name": "metric_name", "comment": null}, "updated_at": {"type": "text", "index": 5, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__metric"}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__metric_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.klaviyo_source.stg_klaviyo__metric_tmp"}, "model.klaviyo_source.stg_klaviyo__person": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__person"}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__person_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.klaviyo_source.stg_klaviyo__person_tmp"}, "model.shopify_source.stg_shopify__customer": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__customer", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "orders_count": {"type": "integer", "index": 9, "name": "orders_count", "comment": null}, "phone": {"type": "integer", "index": 10, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 11, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 12, "name": "is_tax_exempt", "comment": null}, "total_spent": {"type": "double precision", "index": 13, "name": "total_spent", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 14, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 15, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "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.shopify_source.stg_shopify__customer"}, "model.shopify_source.stg_shopify__customer_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__customer_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_source.stg_shopify__customer_tmp"}, "model.shopify_source.stg_shopify__order": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "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.shopify_source.stg_shopify__order"}, "model.shopify_source.stg_shopify__order_adjustment": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_adjustment", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_adjustment_id": {"type": "bigint", "index": 1, "name": "order_adjustment_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__order_adjustment"}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_adjustment_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_source.stg_shopify__order_adjustment_tmp"}, "model.shopify_source.stg_shopify__order_line": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "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.shopify_source.stg_shopify__order_line"}, "model.shopify_source.stg_shopify__order_line_refund": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "order_line_refund_id": {"type": "bigint", "index": 2, "name": "order_line_refund_id", "comment": null}, "location_id": {"type": "bigint", "index": 3, "name": "location_id", "comment": null}, "order_line_id": {"type": "bigint", "index": 4, "name": "order_line_id", "comment": null}, "subtotal": {"type": "numeric(28,6)", "index": 5, "name": "subtotal", "comment": null}, "total_tax": {"type": "numeric(28,6)", "index": 6, "name": "total_tax", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "refund_id": {"type": "bigint", "index": 8, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 9, "name": "restock_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "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.shopify_source.stg_shopify__order_line_refund"}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_source.stg_shopify__order_line_refund_tmp"}, "model.shopify_source.stg_shopify__order_line_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_source.stg_shopify__order_line_tmp"}, "model.shopify_source.stg_shopify__order_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_source.stg_shopify__order_tmp"}, "model.shopify_source.stg_shopify__product": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "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.shopify_source.stg_shopify__product"}, "model.shopify_source.stg_shopify__product_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_source.stg_shopify__product_tmp"}, "model.shopify_source.stg_shopify__product_variant": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_variant", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variant_id": {"type": "bigint", "index": 1, "name": "variant_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "text", "index": 3, "name": "created_timestamp", "comment": null}, "updated_timestamp": {"type": "text", "index": 4, "name": "updated_timestamp", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 6, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 7, "name": "image_id", "comment": null}, "title": {"type": "text", "index": 8, "name": "title", "comment": null}, "price": {"type": "integer", "index": 9, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 10, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 11, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 12, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 13, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 14, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 15, "name": "inventory_management", "comment": null}, "is_taxable": {"type": "boolean", "index": 16, "name": "is_taxable", "comment": null}, "barcode": {"type": "integer", "index": 17, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 18, "name": "grams", "comment": null}, "inventory_quantity": {"type": "integer", "index": 19, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 20, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 21, "name": "weight_unit", "comment": null}, "option_1": {"type": "text", "index": 22, "name": "option_1", "comment": null}, "option_2": {"type": "integer", "index": 23, "name": "option_2", "comment": null}, "option_3": {"type": "integer", "index": 24, "name": "option_3", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 26, "name": "old_inventory_quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 27, "name": "is_requiring_shipping", "comment": null}, "source_relation": {"type": "text", "index": 28, "name": "source_relation", "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.shopify_source.stg_shopify__product_variant"}, "model.shopify_source.stg_shopify__product_variant_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_variant_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_source.stg_shopify__product_variant_tmp"}, "model.shopify_source.stg_shopify__refund": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "order_id": {"type": "bigint", "index": 5, "name": "order_id", "comment": null}, "processed_at": {"type": "text", "index": 6, "name": "processed_at", "comment": null}, "restock": {"type": "boolean", "index": 7, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 8, "name": "user_id", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__refund"}, "model.shopify_source.stg_shopify__refund_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_source.stg_shopify__refund_tmp"}, "model.shopify_source.stg_shopify__transaction": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__transaction", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "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.shopify_source.stg_shopify__transaction"}, "model.shopify_source.stg_shopify__transaction_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__transaction_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_source.stg_shopify__transaction_tmp"}}, "sources": {}, "errors": null} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 56291a2..182b6b4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -24,7 +24,7 @@
icons
- diff --git a/docs/manifest.json b/docs/manifest.json index 814da02..c2c202d 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v6.json", "dbt_version": "1.2.0", "generated_at": "2022-10-13T23:21:00.158592Z", "invocation_id": "09cf5607-4d3b-4819-bd09-baa959605110", "env": {}, "project_id": "0d919ec91381ade1c67705291b214e1c", "user_id": "2bfa9082-ea6e-467b-abdc-d0514ab111d9", "send_anonymous_usage_stats": true, "adapter_type": "bigquery"}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "id": "INT64", "customer_id": "INT64", "location_id": "INT64", "user_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_data.csv", "original_file_path": "seeds/shopify_order_data.csv", "name": "shopify_order_data", "alias": "shopify_order_data", "checksum": {"name": "sha256", "checksum": "4d0dd043a886a0d9e7680e7ee2cd132717490f75d3a06fe7c38956d901976146"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "customer_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.804136, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_order_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "INT64", "location_id": "INT64", "refund_id": "INT64", "order_line_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_refund_data.csv", "original_file_path": "seeds/shopify_order_line_refund_data.csv", "name": "shopify_order_line_refund_data", "alias": "shopify_order_line_refund_data", "checksum": {"name": "sha256", "checksum": "0564bef778890f3e086e4057b2536aaa6cfeceb2f9c9bd95f44d4b9f04a33dc6"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_line_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.809502, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_order_line_refund_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "INT64", "order_id": "INT64", "refund_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_adjustment_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_adjustment_data.csv", "original_file_path": "seeds/shopify_order_adjustment_data.csv", "name": "shopify_order_adjustment_data", "alias": "shopify_order_adjustment_data", "checksum": {"name": "sha256", "checksum": "48ce96540f19450088c661fd48bd8f6d58bb4ca13a1f048880e9984be367172e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.810554, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_order_adjustment_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "INT64", "product_id": "INT64", "inventory_item_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_variant_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_variant_data.csv", "original_file_path": "seeds/shopify_product_variant_data.csv", "name": "shopify_product_variant_data", "alias": "shopify_product_variant_data", "checksum": {"name": "sha256", "checksum": "3430f8a8a9139a753a727caa7e10ac2ac02c4e2683a37ed933566367d2f6200e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "inventory_item_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.811645, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_product_variant_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "INT64", "order_id": "INT64", "user_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_refund_data.csv", "original_file_path": "seeds/shopify_refund_data.csv", "name": "shopify_refund_data", "alias": "shopify_refund_data", "checksum": {"name": "sha256", "checksum": "8d8bc98681d9b0d57a43af3fc99ff13cc42401d97e49bba41c1fafb28f858d23"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.81262, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_refund_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "INT64", "order_id": "INT64", "refund_id": "INT64", "receipt": "string"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_transaction_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_transaction_data.csv", "original_file_path": "seeds/shopify_transaction_data.csv", "name": "shopify_transaction_data", "alias": "shopify_transaction_data", "checksum": {"name": "sha256", "checksum": "def7b7fc64e42148b900dcd1f7327b470e5d3b0ed8e73f263e46a715ecb09199"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "receipt": "{{ 'varchar(100)' if target.name in ('redshift', 'postgres') else 'string' }}"}}, "created_at": 1665703194.813594, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_transaction_data`"}, "seed.shopify_holistic_reporting_integration_tests.flow": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "trigger": "string"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "flow"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "flow.csv", "original_file_path": "seeds/flow.csv", "name": "flow", "alias": "flow", "checksum": {"name": "sha256", "checksum": "8a59e1c986a7509b15603761cb0225587bd8db8ae81ee0b146ca821be8103627"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type == 'redshift' else false }}", "column_types": {"trigger": "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}"}, "enabled": "{{ true if target.type != 'snowflake' else false }}"}, "created_at": 1665703194.815833, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`flow`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_data.csv", "original_file_path": "seeds/shopify_product_data.csv", "name": "shopify_product_data", "alias": "shopify_product_data", "checksum": {"name": "sha256", "checksum": "5cc03f90512ac04a6526220040085e4e0488b62ef22e8b201424c7d7cf1bf847"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.816853, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_product_data`"}, "seed.shopify_holistic_reporting_integration_tests.integration": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "integration"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "integration.csv", "original_file_path": "seeds/integration.csv", "name": "integration", "alias": "integration", "checksum": {"name": "sha256", "checksum": "7d65e88ffe7faca2f24289441001007cc8222d5bb8f788c2807072bd7bb0b022"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1665703194.817846, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`integration`"}, "seed.shopify_holistic_reporting_integration_tests.metric": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "metric"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "metric.csv", "original_file_path": "seeds/metric.csv", "name": "metric", "alias": "metric", "checksum": {"name": "sha256", "checksum": "155dde6f21d4cf0d8d11b898b4c1f310c2ffbe44c897aaacd5dd31a607bd447a"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1665703194.818774, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`metric`"}, "seed.shopify_holistic_reporting_integration_tests.person": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "phone_number": "string"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "person"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.person", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "person.csv", "original_file_path": "seeds/person.csv", "name": "person", "alias": "person", "checksum": {"name": "sha256", "checksum": "6f915292a8aba951a356baacc8e65fac88b0a28e98d6cff84f708aeaf68d9ceb"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"phone_number": "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}"}}, "created_at": 1665703194.819842, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`person`"}, "seed.shopify_holistic_reporting_integration_tests.event": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "flow_id": "string", "campaign_id": "string"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "event"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.event", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "event.csv", "original_file_path": "seeds/event.csv", "name": "event", "alias": "event", "checksum": {"name": "sha256", "checksum": "fb7883912895ceb24123ecd1e37c8cd3d8e837493d1ed2007fd64daf45a8581c"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"flow_id": "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}", "campaign_id": "{{ 'string' if target.type in ('bigquery', 'spark') else 'varchar' }}"}}, "created_at": 1665703194.820801, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`event`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "id": "INT64", "default_address_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_customer_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_customer_data.csv", "original_file_path": "seeds/shopify_customer_data.csv", "name": "shopify_customer_data", "alias": "shopify_customer_data", "checksum": {"name": "sha256", "checksum": "79bc0a5972c321cefe2973acdd443ce1d42e36b3b23b2298151046d23bdf4bea"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "default_address_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.821768, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_customer_data`"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "order_id": "INT64", "id": "INT64", "product_id": "INT64", "variant_id": "INT64"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_data.csv", "original_file_path": "seeds/shopify_order_line_data.csv", "name": "shopify_order_line_data", "alias": "shopify_order_line_data", "checksum": {"name": "sha256", "checksum": "cabaa49c9bd299b34eb2154893a6dd399fbbad7e4ad7036293c8b4cb599199e0"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "variant_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1665703194.822731, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`shopify_order_line_data`"}, "seed.shopify_holistic_reporting_integration_tests.campaign": {"raw_sql": "", "compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "campaign"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "campaign.csv", "original_file_path": "seeds/campaign.csv", "name": "campaign", "alias": "campaign", "checksum": {"name": "sha256", "checksum": "e80312165b7d9198633569c5c50aaaf7e73df74dff2d46600adca3fef4b8dd43"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1665703194.82379, "compiled_sql": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test`.`campaign`"}, "model.shopify_source.stg_shopify__order_line": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__order_line_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_tmp')),\n staging_columns=get_order_line_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_pass_through_columns') %}\n ,\n {{ var('order_line_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line"], "unique_id": "model.shopify_source.stg_shopify__order_line", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line.sql", "original_file_path": "models/stg_shopify__order_line.sql", "name": "stg_shopify__order_line", "alias": "stg_shopify__order_line", "checksum": {"name": "sha256", "checksum": "bb641f0d784534dc9d6d86bda3391b7c905b0a739c6cf34ef60e4716b5fd86ce"}, "tags": [], "refs": [["stg_shopify__order_line_tmp"], ["stg_shopify__order_line_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.322504, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n fulfillable_quantity\n \n as \n \n fulfillable_quantity\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n gift_card\n \n as is_gift_card , \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n id\n \n as order_line_id , \n \n \n index\n \n as \n \n index\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n pre_tax_price\n \n as \n \n pre_tax_price\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n product_id\n \n as \n \n product_id\n \n, \n cast(null as \n numeric\n) as \n \n property_charge_interval_frequency\n \n , \n cast(null as \n string\n) as \n \n property_for_shipping_jan_3_rd_2020\n \n , \n cast(null as \n numeric\n) as \n \n property_shipping_interval_frequency\n \n , \n cast(null as \n string\n) as \n \n property_shipping_interval_unit_type\n \n , \n cast(null as \n numeric\n) as \n \n property_subscription_id\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping , \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n title\n \n as \n \n title\n \n, \n \n \n total_discount\n \n as \n \n total_discount\n \n, \n \n \n variant_id\n \n as \n \n variant_id\n \n, \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`"}, "model.shopify_source.stg_shopify__refund": {"raw_sql": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__refund"], "unique_id": "model.shopify_source.stg_shopify__refund", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__refund.sql", "original_file_path": "models/stg_shopify__refund.sql", "name": "stg_shopify__refund", "alias": "stg_shopify__refund", "checksum": {"name": "sha256", "checksum": "db92848ca19e65385f44b51e662bc9a3c773fecefe896cbddd1f23d22d078e82"}, "tags": [], "refs": [["stg_shopify__refund_tmp"], ["stg_shopify__refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a refund within Shopify.", "columns": {"refund_id": {"name": "refund_id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1665703195.3425841, "compiled_sql": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as \n \n created_at\n \n, \n \n \n id\n \n as refund_id , \n \n \n note\n \n as \n \n note\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n processed_at\n \n as \n \n processed_at\n \n, \n \n \n restock\n \n as \n \n restock\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n\n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`"}, "model.shopify_source.stg_shopify__product": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__product_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_pass_through_columns') %}\n ,\n {{ var('product_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product"], "unique_id": "model.shopify_source.stg_shopify__product", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product.sql", "original_file_path": "models/stg_shopify__product.sql", "name": "stg_shopify__product", "alias": "stg_shopify__product", "checksum": {"name": "sha256", "checksum": "dd30ab5bbf28fc246f4d4625c8057bd05f59c9e8f115d8c72f301b22236b59eb"}, "tags": [], "refs": [["stg_shopify__product_tmp"], ["stg_shopify__product_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.333279, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n handle\n \n as \n \n handle\n \n, \n \n \n id\n \n as product_id , \n \n \n product_type\n \n as \n \n product_type\n \n, \n \n \n published_at\n \n as published_timestamp , \n \n \n published_scope\n \n as \n \n published_scope\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product`"}, "model.shopify_source.stg_shopify__product_variant": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__product_variant_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_variant_tmp')),\n staging_columns=get_product_variant_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_variant_pass_through_columns') %}\n ,\n {{ var('product_variant_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_variant_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product_variant"], "unique_id": "model.shopify_source.stg_shopify__product_variant", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product_variant.sql", "original_file_path": "models/stg_shopify__product_variant.sql", "name": "stg_shopify__product_variant", "alias": "stg_shopify__product_variant", "checksum": {"name": "sha256", "checksum": "6d09962a9153df0f1b3220ecfe3ecd87997d5e5b87187a985a7c25006ca8b229"}, "tags": [], "refs": [["stg_shopify__product_variant_tmp"], ["stg_shopify__product_variant_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product_variant.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.336997, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_variant_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as variant_id , \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n product_id\n \n as \n \n product_id\n \n, \n \n \n inventory_item_id\n \n as \n \n inventory_item_id\n \n, \n \n \n image_id\n \n as \n \n image_id\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n position\n \n as \n \n position\n \n, \n \n \n inventory_policy\n \n as \n \n inventory_policy\n \n, \n \n \n compare_at_price\n \n as \n \n compare_at_price\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n inventory_management\n \n as \n \n inventory_management\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n barcode\n \n as \n \n barcode\n \n, \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n inventory_quantity\n \n as \n \n inventory_quantity\n \n, \n \n \n weight\n \n as \n \n weight\n \n, \n \n \n weight_unit\n \n as \n \n weight_unit\n \n, \n \n \n option_1\n \n as \n \n option_1\n \n, \n \n \n option_2\n \n as \n \n option_2\n \n, \n \n \n option_3\n \n as \n \n option_3\n \n, \n \n \n tax_code\n \n as \n \n tax_code\n \n, \n \n \n old_inventory_quantity\n \n as \n \n old_inventory_quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_variant`"}, "model.shopify_source.stg_shopify__order": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__order_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_tmp')),\n staging_columns=get_order_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_pass_through_columns') %}\n ,\n {{ var('order_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order"], "unique_id": "model.shopify_source.stg_shopify__order", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order.sql", "original_file_path": "models/stg_shopify__order.sql", "name": "stg_shopify__order", "alias": "stg_shopify__order", "checksum": {"name": "sha256", "checksum": "a4b7cdee44f261fe11e487f1022c1f7bd57196220a453bff382c1876ee5a2192"}, "tags": [], "refs": [["stg_shopify__order_tmp"], ["stg_shopify__order_tmp"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.33163, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as order_id , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n total_discounts\n \n as \n \n total_discounts\n \n, \n \n \n total_line_items_price\n \n as \n \n total_line_items_price\n \n, \n \n \n total_price\n \n as \n \n total_price\n \n, \n \n \n total_tax\n \n as \n \n total_tax\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n subtotal_price\n \n as \n \n subtotal_price\n \n, \n \n \n taxes_included\n \n as has_taxes_included , \n \n \n total_weight\n \n as \n \n total_weight\n \n, \n \n \n landing_site_base_url\n \n as \n \n landing_site_base_url\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n note\n \n as \n \n note\n \n, \n \n \n number\n \n as \n \n number\n \n, \n \n \n order_number\n \n as \n \n order_number\n \n, \n \n \n cancel_reason\n \n as \n \n cancel_reason\n \n, \n \n \n cancelled_at\n \n as cancelled_timestamp , \n \n \n cart_token\n \n as \n \n cart_token\n \n, \n \n \n checkout_token\n \n as \n \n checkout_token\n \n, \n \n \n closed_at\n \n as closed_timestamp , \n \n \n created_at\n \n as created_timestamp , \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n customer_id\n \n as \n \n customer_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n financial_status\n \n as \n \n financial_status\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n processing_method\n \n as \n \n processing_method\n \n, \n \n \n referring_site\n \n as \n \n referring_site\n \n, \n \n \n billing_address_address_1\n \n as \n \n billing_address_address_1\n \n, \n \n \n billing_address_address_2\n \n as \n \n billing_address_address_2\n \n, \n \n \n billing_address_city\n \n as \n \n billing_address_city\n \n, \n \n \n billing_address_company\n \n as \n \n billing_address_company\n \n, \n \n \n billing_address_country\n \n as \n \n billing_address_country\n \n, \n \n \n billing_address_country_code\n \n as \n \n billing_address_country_code\n \n, \n \n \n billing_address_first_name\n \n as \n \n billing_address_first_name\n \n, \n \n \n billing_address_last_name\n \n as \n \n billing_address_last_name\n \n, \n \n \n billing_address_latitude\n \n as \n \n billing_address_latitude\n \n, \n \n \n billing_address_longitude\n \n as \n \n billing_address_longitude\n \n, \n \n \n billing_address_name\n \n as \n \n billing_address_name\n \n, \n \n \n billing_address_phone\n \n as \n \n billing_address_phone\n \n, \n \n \n billing_address_province\n \n as \n \n billing_address_province\n \n, \n \n \n billing_address_province_code\n \n as \n \n billing_address_province_code\n \n, \n \n \n billing_address_zip\n \n as \n \n billing_address_zip\n \n, \n \n \n browser_ip\n \n as \n \n browser_ip\n \n, \n \n \n buyer_accepts_marketing\n \n as has_buyer_accepted_marketing , \n cast(null as \n string\n) as \n \n total_shipping_price_set\n \n , \n \n \n shipping_address_address_1\n \n as \n \n shipping_address_address_1\n \n, \n \n \n shipping_address_address_2\n \n as \n \n shipping_address_address_2\n \n, \n \n \n shipping_address_city\n \n as \n \n shipping_address_city\n \n, \n \n \n shipping_address_company\n \n as \n \n shipping_address_company\n \n, \n \n \n shipping_address_country\n \n as \n \n shipping_address_country\n \n, \n \n \n shipping_address_country_code\n \n as \n \n shipping_address_country_code\n \n, \n \n \n shipping_address_first_name\n \n as \n \n shipping_address_first_name\n \n, \n \n \n shipping_address_last_name\n \n as \n \n shipping_address_last_name\n \n, \n \n \n shipping_address_latitude\n \n as \n \n shipping_address_latitude\n \n, \n \n \n shipping_address_longitude\n \n as \n \n shipping_address_longitude\n \n, \n \n \n shipping_address_name\n \n as \n \n shipping_address_name\n \n, \n \n \n shipping_address_phone\n \n as \n \n shipping_address_phone\n \n, \n \n \n shipping_address_province\n \n as \n \n shipping_address_province\n \n, \n \n \n shipping_address_province_code\n \n as \n \n shipping_address_province_code\n \n, \n \n \n shipping_address_zip\n \n as \n \n shipping_address_zip\n \n, \n \n \n test\n \n as is_test_order , \n \n \n token\n \n as \n \n token\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`"}, "model.shopify_source.stg_shopify__transaction": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__transaction_tmp') }}\n\n),\n\nrenamed as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__transaction_tmp')),\n staging_columns=get_transaction_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('transaction_pass_through_columns') %}\n ,\n {{ var('transaction_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n where not test\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__transaction"], "unique_id": "model.shopify_source.stg_shopify__transaction", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__transaction.sql", "original_file_path": "models/stg_shopify__transaction.sql", "name": "stg_shopify__transaction", "alias": "stg_shopify__transaction", "checksum": {"name": "sha256", "checksum": "b837eb0c1661d2817ccb6a1c3123e7d146dbbd9a63ea1fe0ad52ba8a1742ecbe"}, "tags": [], "refs": [["stg_shopify__transaction_tmp"], ["stg_shopify__transaction_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__transaction.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.341165, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__transaction_tmp`\n\n),\n\nrenamed as (\n\n select\n\n \n \n \n id\n \n as transaction_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n device_id\n \n as \n \n device_id\n \n, \n \n \n gateway\n \n as \n \n gateway\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n message\n \n as \n \n message\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n parent_id\n \n as \n \n parent_id\n \n, \n \n \n payment_avs_result_code\n \n as \n \n payment_avs_result_code\n \n, \n \n \n payment_credit_card_bin\n \n as \n \n payment_credit_card_bin\n \n, \n \n \n payment_cvv_result_code\n \n as \n \n payment_cvv_result_code\n \n, \n \n \n payment_credit_card_number\n \n as \n \n payment_credit_card_number\n \n, \n \n \n payment_credit_card_company\n \n as \n \n payment_credit_card_company\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n receipt\n \n as \n \n receipt\n \n, \n \n \n currency_exchange_id\n \n as \n \n currency_exchange_id\n \n, \n \n \n currency_exchange_adjustment\n \n as \n \n currency_exchange_adjustment\n \n, \n \n \n currency_exchange_original_amount\n \n as \n \n currency_exchange_original_amount\n \n, \n \n \n currency_exchange_final_amount\n \n as \n \n currency_exchange_final_amount\n \n, \n \n \n currency_exchange_currency\n \n as \n \n currency_exchange_currency\n \n, \n \n \n error_code\n \n as \n \n error_code\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n test\n \n as \n \n test\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n where not test\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__transaction`"}, "model.shopify_source.stg_shopify__order_adjustment": {"raw_sql": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__order_adjustment_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_adjustment_tmp')),\n staging_columns=get_order_adjustment_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_adjustment_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_adjustment"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_adjustment.sql", "original_file_path": "models/stg_shopify__order_adjustment.sql", "name": "stg_shopify__order_adjustment", "alias": "stg_shopify__order_adjustment", "checksum": {"name": "sha256", "checksum": "b494a4c88cf235fb0b11c020d004bcf0904e9d1ae235144330d3d24b37ad4318"}, "tags": [], "refs": [["stg_shopify__order_adjustment_tmp"], ["stg_shopify__order_adjustment_tmp"]], "sources": [], "metrics": [], "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"order_adjustment_id": {"name": "order_adjustment_id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_adjustment.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1665703195.344127, "compiled_sql": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_adjustment_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n id\n \n as order_adjustment_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n tax_amount\n \n as \n \n tax_amount\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n reason\n \n as \n \n reason\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_adjustment`"}, "model.shopify_source.stg_shopify__customer": {"raw_sql": "with source as (\n\n select * from {{ ref('stg_shopify__customer_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('customer_pass_through_columns') %}\n ,\n {{ var('customer_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__customer"], "unique_id": "model.shopify_source.stg_shopify__customer", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__customer.sql", "original_file_path": "models/stg_shopify__customer.sql", "name": "stg_shopify__customer", "alias": "stg_shopify__customer", "checksum": {"name": "sha256", "checksum": "e43df3b376bae7b581cfb9514f59c82263bbba83447e9bd440a214e8c2dca709"}, "tags": [], "refs": [["stg_shopify__customer_tmp"], ["stg_shopify__customer_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__customer.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1665703195.317596, "compiled_sql": "with source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__customer_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n accepts_marketing\n \n as has_accepted_marketing , \n \n \n created_at\n \n as created_timestamp , \n \n \n default_address_id\n \n as \n \n default_address_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as customer_id , \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n orders_count\n \n as \n \n orders_count\n \n, \n \n \n phone\n \n as \n \n phone\n \n, \n \n \n state\n \n as account_state , \n \n \n tax_exempt\n \n as is_tax_exempt , \n \n \n total_spent\n \n as \n \n total_spent\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n verified_email\n \n as is_verified_email \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__customer`"}, "model.shopify_source.stg_shopify__order_line_refund": {"raw_sql": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\nwith source as (\n\n select * from {{ ref('stg_shopify__order_line_refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_refund_tmp')),\n staging_columns=get_order_line_refund_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_refund_pass_through_columns') %}\n ,\n {{ var('order_line_refund_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line_refund"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line_refund.sql", "original_file_path": "models/stg_shopify__order_line_refund.sql", "name": "stg_shopify__order_line_refund", "alias": "stg_shopify__order_line_refund", "checksum": {"name": "sha256", "checksum": "0d7b02b07f95694dd5358ec919659f16bdccf708f906546b99f448355b1253cd"}, "tags": [], "refs": [["stg_shopify__order_line_refund_tmp"], ["stg_shopify__order_line_refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_refund_id": {"name": "order_line_refund_id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line_refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1665703195.3192441, "compiled_sql": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund_tmp`\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n id\n \n as order_line_refund_id , \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n order_line_id\n \n as \n \n order_line_id\n \n, \n cast(null as \n numeric\n) as \n \n subtotal\n \n , \n cast(null as \n numeric\n) as \n \n total_tax\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n restock_type\n \n as \n \n restock_type\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`"}, "model.shopify_source.stg_shopify__customer_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='customer', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='customer_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__customer_tmp"], "unique_id": "model.shopify_source.stg_shopify__customer_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__customer_tmp.sql", "original_file_path": "models/tmp/stg_shopify__customer_tmp.sql", "name": "stg_shopify__customer_tmp", "alias": "stg_shopify__customer_tmp", "checksum": {"name": "sha256", "checksum": "1f896e84164292f48db1c4eddfd6b3afef9ce4661ad2ab160c8721c8e620026c"}, "tags": [], "refs": [["shopify_customer_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__customer_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.964294, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_customer_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__customer_tmp`"}, "model.shopify_source.stg_shopify__order_line_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='order_line', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_tmp.sql", "name": "stg_shopify__order_line_tmp", "alias": "stg_shopify__order_line_tmp", "checksum": {"name": "sha256", "checksum": "778359b2c17590b95d7b5709bfdd28b50d323b905e4277c74203416f08ee458e"}, "tags": [], "refs": [["shopify_order_line_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.9737659, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_order_line_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_tmp`"}, "model.shopify_source.stg_shopify__refund_tmp": {"raw_sql": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__refund_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__refund_tmp.sql", "name": "stg_shopify__refund_tmp", "alias": "stg_shopify__refund_tmp", "checksum": {"name": "sha256", "checksum": "2bcf1d64f126acc4d271984df2b6332286bf10a7345962f7037c391d8ecdbdbd"}, "tags": [], "refs": [["shopify_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1665703194.9770648, "compiled_sql": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_refund_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund_tmp`"}, "model.shopify_source.stg_shopify__product_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='product', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_tmp.sql", "name": "stg_shopify__product_tmp", "alias": "stg_shopify__product_tmp", "checksum": {"name": "sha256", "checksum": "4c88fa0dabe17fa99b7509af7b3518c844df1747e28e6c7ac4f0a8262424e91a"}, "tags": [], "refs": [["shopify_product_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.9806762, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_product_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_tmp`"}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"raw_sql": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_adjustment', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_adjustment_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_adjustment_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_adjustment_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_adjustment_tmp.sql", "name": "stg_shopify__order_adjustment_tmp", "alias": "stg_shopify__order_adjustment_tmp", "checksum": {"name": "sha256", "checksum": "e3d5e7ba5a680437560ef21796b014718c45d20c52fbf4ac950d8eb687348d96"}, "tags": [], "refs": [["shopify_order_adjustment_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_adjustment_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1665703194.984044, "compiled_sql": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_order_adjustment_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_adjustment_tmp`"}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"raw_sql": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_line_refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_refund_tmp.sql", "name": "stg_shopify__order_line_refund_tmp", "alias": "stg_shopify__order_line_refund_tmp", "checksum": {"name": "sha256", "checksum": "33bb981405f33c32bbe9c2107a9ba93fd70b9e59578befc3c9e7f78a68c27eb2"}, "tags": [], "refs": [["shopify_order_line_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1665703194.987639, "compiled_sql": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_order_line_refund_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund_tmp`"}, "model.shopify_source.stg_shopify__transaction_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='transaction', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='transaction_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__transaction_tmp"], "unique_id": "model.shopify_source.stg_shopify__transaction_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__transaction_tmp.sql", "original_file_path": "models/tmp/stg_shopify__transaction_tmp.sql", "name": "stg_shopify__transaction_tmp", "alias": "stg_shopify__transaction_tmp", "checksum": {"name": "sha256", "checksum": "9a4cf0c7a2495c01fd10f0d88655aaffe63ef8b3cc94883e10507b034285f978"}, "tags": [], "refs": [["shopify_transaction_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__transaction_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.991796, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_transaction_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__transaction_tmp`"}, "model.shopify_source.stg_shopify__product_variant_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='product_variant', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_variant_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_variant_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_variant_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_variant_tmp.sql", "name": "stg_shopify__product_variant_tmp", "alias": "stg_shopify__product_variant_tmp", "checksum": {"name": "sha256", "checksum": "cbb9a84c332f17d90ad953536a449714fac6f77f871da604d43ffb846f6d5621"}, "tags": [], "refs": [["shopify_product_variant_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_variant_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.995038, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_product_variant_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_variant_tmp`"}, "model.shopify_source.stg_shopify__order_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='order', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_tmp", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_tmp.sql", "name": "stg_shopify__order_tmp", "alias": "stg_shopify__order_tmp", "checksum": {"name": "sha256", "checksum": "f4fd2563557b13c2b54531a7fa9995e496aa1b39432d729a010ddcb7e10001ae"}, "tags": [], "refs": [["shopify_order_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1665703194.998407, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`shopify_order_data`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_tmp`"}, "model.klaviyo_source.stg_klaviyo__person": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__person_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__person_tmp')),\n staging_columns=get_person_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n {{ fivetran_utils.fill_pass_through_columns('klaviyo__person_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_person_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__person"], "unique_id": "model.klaviyo_source.stg_klaviyo__person", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__person.sql", "original_file_path": "models/stg_klaviyo__person.sql", "name": "stg_klaviyo__person", "alias": "stg_klaviyo__person", "checksum": {"name": "sha256", "checksum": "0c4d31fb3c257dff6d4c5123f3352ee790db81b766ac4f3be3b1cdb06d19b45f"}, "tags": [], "refs": [["stg_klaviyo__person_tmp"], ["stg_klaviyo__person_tmp"]], "sources": [], "metrics": [], "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__person.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.462246, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n address_1\n \n as \n \n address_1\n \n, \n \n \n address_2\n \n as \n \n address_2\n \n, \n \n \n city\n \n as \n \n city\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n latitude\n \n as \n \n latitude\n \n, \n \n \n longitude\n \n as \n \n longitude\n \n, \n \n \n organization\n \n as \n \n organization\n \n, \n \n \n phone_number\n \n as \n \n phone_number\n \n, \n \n \n region\n \n as \n \n region\n \n, \n \n \n timezone\n \n as \n \n timezone\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n zip\n \n as \n \n zip\n \n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`"}, "model.klaviyo_source.stg_klaviyo__campaign": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__campaign_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__campaign_tmp')),\n staging_columns=get_campaign_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__campaign"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__campaign.sql", "original_file_path": "models/stg_klaviyo__campaign.sql", "name": "stg_klaviyo__campaign", "alias": "stg_klaviyo__campaign", "checksum": {"name": "sha256", "checksum": "3bb055bc8484630176011790a666821ae220126184e05eaff411aa44406048e2"}, "tags": [], "refs": [["stg_klaviyo__campaign_tmp"], ["stg_klaviyo__campaign_tmp"]], "sources": [], "metrics": [], "description": "Table capturing email campaigns in Klaviyo.\n", "columns": {"campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__campaign.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.4540539, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_type\n \n as \n \n campaign_type\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email_template_id\n \n as \n \n email_template_id\n \n, \n \n \n from_email\n \n as \n \n from_email\n \n, \n \n \n from_name\n \n as \n \n from_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n is_segmented\n \n as \n \n is_segmented\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n send_time\n \n as \n \n send_time\n \n, \n \n \n sent_at\n \n as \n \n sent_at\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n status_id\n \n as \n \n status_id\n \n, \n \n \n status_label\n \n as \n \n status_label\n \n, \n \n \n subject\n \n as \n \n subject\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign`"}, "model.klaviyo_source.stg_klaviyo__metric": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__metric_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__metric_tmp')),\n staging_columns=get_metric_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_metric_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__metric"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__metric.sql", "original_file_path": "models/stg_klaviyo__metric.sql", "name": "stg_klaviyo__metric", "alias": "stg_klaviyo__metric", "checksum": {"name": "sha256", "checksum": "d131ba8b5c6b489c12dc687514ef82b359aecaa82175b66d77fa44344b4eb58f"}, "tags": [], "refs": [["stg_klaviyo__metric_tmp"], ["stg_klaviyo__metric_tmp"]], "sources": [], "metrics": [], "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_name": {"name": "metric_name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__metric.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.463327, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n integration_id\n \n as \n \n integration_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric`"}, "model.klaviyo_source.stg_klaviyo__integration": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__integration_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__integration_tmp')),\n staging_columns=get_integration_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_integration_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__integration"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__integration.sql", "original_file_path": "models/stg_klaviyo__integration.sql", "name": "stg_klaviyo__integration", "alias": "stg_klaviyo__integration", "checksum": {"name": "sha256", "checksum": "cf1d2569260342f615850f5d782fb0e166d1b70ea3a703fb2248d6f457023cf8"}, "tags": [], "refs": [["stg_klaviyo__integration_tmp"], ["stg_klaviyo__integration_tmp"]], "sources": [], "metrics": [], "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__integration.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.459376, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n category\n \n as \n \n category\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 \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration`"}, "model.klaviyo_source.stg_klaviyo__flow": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__flow_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__flow_tmp')),\n staging_columns=get_flow_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n {% if target.type == 'snowflake'%}\n \"TRIGGER\" \n {% else %}\n trigger\n {% endif %}\n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_flow_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__flow"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__flow.sql", "original_file_path": "models/stg_klaviyo__flow.sql", "name": "stg_klaviyo__flow", "alias": "stg_klaviyo__flow", "checksum": {"name": "sha256", "checksum": "a74ad01e8fbca823f7ec229f1d0c59171c4a1200e314cb06e0ac75da0bc72792"}, "tags": [], "refs": [["stg_klaviyo__flow_tmp"], ["stg_klaviyo__flow_tmp"]], "sources": [], "metrics": [], "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.4584188, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\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 status\n \n as \n \n status\n \n, \n \n \n \n \n `trigger`\n \n \n \n as \n \n \n \n `trigger`\n \n \n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n customer_filter\n \n as \n \n customer_filter\n \n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n \n trigger\n \n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow`"}, "model.klaviyo_source.stg_klaviyo__event": {"raw_sql": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__event_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__event_tmp')),\n staging_columns=get_event_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as {{ dbt_utils.type_timestamp() }} ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n {{ fivetran_utils.fill_pass_through_columns('klaviyo__event_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( {{ dbt_utils.date_trunc('day', 'occurred_at') }} as date) as occurred_on,\n {{ dbt_utils.surrogate_key(['event_id', 'source_relation']) }} as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_event_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt_utils.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns", "macro.dbt_utils.date_trunc", "macro.dbt_utils.surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__event"], "unique_id": "model.klaviyo_source.stg_klaviyo__event", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__event.sql", "original_file_path": "models/stg_klaviyo__event.sql", "name": "stg_klaviyo__event", "alias": "stg_klaviyo__event", "checksum": {"name": "sha256", "checksum": "3f6b83c7355226d28545f2ef688933906d57e1acdd0b840bb6a504cae3b3bba5"}, "tags": [], "refs": [["stg_klaviyo__event_tmp"], ["stg_klaviyo__event_tmp"]], "sources": [], "metrics": [], "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__event.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1665703195.456589, "compiled_sql": "with base as (\n\n select * \n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event_tmp`\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n _variation\n \n as \n \n _variation\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n datetime\n \n as \n \n datetime\n \n, \n \n \n flow_id\n \n as \n \n flow_id\n \n, \n \n \n flow_message_id\n \n as \n \n flow_message_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n metric_id\n \n as \n \n metric_id\n \n, \n \n \n person_id\n \n as \n \n person_id\n \n, \n \n \n timestamp\n \n as \n \n timestamp\n \n, \n \n \n type\n \n as \n \n type\n \n, \n \n \n uuid\n \n as \n \n uuid\n \n, \n \n \n property_value\n \n as \n \n property_value\n \n\n\n\n \n\n\n, cast('' as \n string\n) as source_relation\n\n\n\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as \n timestamp\n ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( timestamp_trunc(\n cast(occurred_at as timestamp),\n day\n ) as date) as occurred_on,\n to_hex(md5(cast(coalesce(cast(event_id as \n string\n), '') || '-' || coalesce(cast(source_relation as \n string\n), '') as \n string\n))) as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event`"}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='event', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='event_table',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.event"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__event_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__event_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__event_tmp.sql", "name": "stg_klaviyo__event_tmp", "alias": "stg_klaviyo__event_tmp", "checksum": {"name": "sha256", "checksum": "0aa5096828da6b1f75fb7a93d5f7621f024adb2ef241014a075abae8511fb337"}, "tags": [], "refs": [["event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__event_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.104689, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`event`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event_tmp`"}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='metric', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='metric',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.metric"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__metric_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__metric_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__metric_tmp.sql", "name": "stg_klaviyo__metric_tmp", "alias": "stg_klaviyo__metric_tmp", "checksum": {"name": "sha256", "checksum": "1f887542c817cae88b22c9632e93da3ae5fa6c02dadc22e8901484b55e4c5f2d"}, "tags": [], "refs": [["metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__metric_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.1079738, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`metric`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric_tmp`"}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='campaign', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='campaign',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.campaign"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__campaign_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__campaign_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__campaign_tmp.sql", "name": "stg_klaviyo__campaign_tmp", "alias": "stg_klaviyo__campaign_tmp", "checksum": {"name": "sha256", "checksum": "f494e0b1c1093180196545a7c05c0f8f7f8ed074e63328057021091c1d776530"}, "tags": [], "refs": [["campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__campaign_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.111306, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`campaign`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign_tmp`"}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='integration', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='integration',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.integration"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__integration_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__integration_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__integration_tmp.sql", "name": "stg_klaviyo__integration_tmp", "alias": "stg_klaviyo__integration_tmp", "checksum": {"name": "sha256", "checksum": "174b16d87563e123fb0d813d3749c31fb80fc08df48143729e28f34bce0a2e04"}, "tags": [], "refs": [["integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__integration_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.1145291, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`integration`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration_tmp`"}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='flow', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='flow',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.flow"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__flow_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__flow_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__flow_tmp.sql", "name": "stg_klaviyo__flow_tmp", "alias": "stg_klaviyo__flow_tmp", "checksum": {"name": "sha256", "checksum": "4437a7971622b8cd114313ee2b1a59b992ba862c49f0086851d5d60082617b0c"}, "tags": [], "refs": [["flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__flow_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.118465, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`flow`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow_tmp`"}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"raw_sql": "{{\n fivetran_utils.union_data(\n table_identifier='person', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='person',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.person"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__person_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__person_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__person_tmp.sql", "name": "stg_klaviyo__person_tmp", "alias": "stg_klaviyo__person_tmp", "checksum": {"name": "sha256", "checksum": "ec768db1c8d1d5eb47e967bf23bb95726133d2a298373f757930302de96e2910"}, "tags": [], "refs": [["person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__person_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1665703195.123636, "compiled_sql": "\n\n\n\n select * \n from `dbt-package-testing`.`dbt_test`.`person`\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person_tmp`"}, "model.klaviyo.klaviyo__person_campaign_flow": {"raw_sql": "with events as (\n select *\n from {{ ref('klaviyo__events') }}\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=7) }}\n)\n\nselect *\nfrom pivot_out_events", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_klaviyo", "fqn": ["klaviyo", "klaviyo__person_campaign_flow"], "unique_id": "model.klaviyo.klaviyo__person_campaign_flow", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__person_campaign_flow.sql", "original_file_path": "models/klaviyo__person_campaign_flow.sql", "name": "klaviyo__person_campaign_flow", "alias": "klaviyo__person_campaign_flow", "checksum": {"name": "sha256", "checksum": "89abb4c1b2f90ada510aba4f45cb935f457c0e0a776a6f761826e5b270bc7817"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "Table that aggregates event metrics to the person-campaign or -flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that organic interactions (someone with null campaign_id/flow_id) are included in this table. \n**Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\n", "columns": {"person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who interacted with the flow/message.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person. In other words, the first event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person. In other words, the last event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__person_campaign_flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1665703195.515933, "compiled_sql": "with events as (\n select *\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then 1 else 0 end) \n as count_cancelled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'fulfilled order' then 1 else 0 end) \n as count_fulfilled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'bounced email' then 1 else 0 end) \n as count_bounced_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'dropped email' then 1 else 0 end) \n as count_dropped_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to list' then 1 else 0 end) \n as count_subscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed to list' then 1 else 0 end) \n as count_unsubscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'updated email preferences' then 1 else 0 end) \n as count_updated_email_preferences -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to back in stock' then 1 else 0 end) \n as count_subscribed_to_back_in_stock -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'merged profile' then 1 else 0 end) \n as count_merged_profile -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'consented to receive sms' then 1 else 0 end) \n as count_consented_to_receive_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'failed to deliver sms' then 1 else 0 end) \n as count_failed_to_deliver_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7\n)\n\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__person_campaign_flow`"}, "model.klaviyo.klaviyo__persons": {"raw_sql": "with person as (\n\n select *\n from {{ var('person') }}\n),\n\nperson_metrics as (\n\n select *\n from {{ ref('int_klaviyo__person_metrics') }}\n),\n\nperson_join as (\n\n select\n person.*,\n {{ dbt_utils.star(from=ref('int_klaviyo__person_metrics'), except=[\"person_id\", \"source_relation\"]) }}\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_klaviyo", "fqn": ["klaviyo", "klaviyo__persons"], "unique_id": "model.klaviyo.klaviyo__persons", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__persons.sql", "original_file_path": "models/klaviyo__persons.sql", "name": "klaviyo__persons", "alias": "klaviyo__persons", "checksum": {"name": "sha256", "checksum": "4228e8c8280040f57997ecd7d0cd1c726cee6789721533903c2f75ad6cefc473"}, "tags": [], "refs": [["stg_klaviyo__person"], ["int_klaviyo__person_metrics"], ["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "Table of unique person profiles, enhanced with event, campaign, flow, and revenue metrics. \n**Counts** of instances of triggered events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__persons.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1665703195.5247061, "compiled_sql": "with person as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\n),\n\nperson_metrics as (\n\n select *\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__person_metrics`\n),\n\nperson_join as (\n\n select\n person.*,\n \n\n `count_total_campaigns`,\n `count_total_flows`,\n `first_event_at`,\n `last_event_at`,\n `first_campaign_touch_at`,\n `last_campaign_touch_at`,\n `first_flow_touch_at`,\n `last_flow_touch_at`,\n `total_sum_revenue_refunded_order`,\n `organic_sum_revenue_refunded_order`,\n `total_sum_revenue_placed_order`,\n `organic_sum_revenue_placed_order`,\n `total_sum_revenue_ordered_product`,\n `organic_sum_revenue_ordered_product`,\n `total_sum_revenue_checkout_started`,\n `organic_sum_revenue_checkout_started`,\n `total_sum_revenue_cancelled_order`,\n `organic_sum_revenue_cancelled_order`,\n `total_count_active_on_site`,\n `total_count_viewed_product`,\n `total_count_ordered_product`,\n `total_count_placed_order`,\n `total_count_refunded_order`,\n `total_count_cancelled_order`,\n `total_count_fulfilled_order`,\n `total_count_received_email`,\n `total_count_clicked_email`,\n `total_count_opened_email`,\n `total_count_bounced_email`,\n `total_count_marked_email_as_spam`,\n `total_count_dropped_email`,\n `total_count_subscribed_to_list`,\n `total_count_unsubscribed_to_list`,\n `total_count_unsubscribed`,\n `total_count_updated_email_preferences`,\n `total_count_subscribed_to_back_in_stock`,\n `total_count_merged_profile`,\n `total_count_received_sms`,\n `total_count_clicked_sms`,\n `total_count_consented_to_receive_sms`,\n `total_count_sent_sms`,\n `total_count_unsubscribed_from_sms`,\n `total_count_failed_to_deliver_sms`\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`"}, "model.klaviyo.klaviyo__flows": {"raw_sql": "with flow as (\n\n select *\n from {{ var('flow') }}\n),\n\nflow_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\nflow_join as (\n \n {% set exclude_fields = ['last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n flow.*, -- has flow_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.surrogate_key(['flow_id','variation_id']) }} as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_klaviyo", "fqn": ["klaviyo", "klaviyo__flows"], "unique_id": "model.klaviyo.klaviyo__flows", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__flows.sql", "original_file_path": "models/klaviyo__flows.sql", "name": "klaviyo__flows", "alias": "klaviyo__flows", "checksum": {"name": "sha256", "checksum": "e51636d4194dd04fc1bd023c6aa0a982fa517a29f6734d611756bda94c123e0e"}, "tags": [], "refs": [["stg_klaviyo__flow"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique flow versions. A flow with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"flow_variation_key": {"name": "flow_variation_key", "description": "Unique key hashed on the flow and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__flows.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1665703195.5208042, "compiled_sql": "with flow as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow`\n),\n\nflow_metrics as (\n\n select *\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__campaign_flow_metrics`\n),\n\nflow_join as (\n \n \n\n select\n flow.*, -- has flow_id and source_relation\n \n\n `variation_id`,\n `total_count_unique_people`,\n `first_event_at`,\n `last_event_at`,\n `sum_revenue_refunded_order`,\n `sum_revenue_placed_order`,\n `sum_revenue_ordered_product`,\n `sum_revenue_checkout_started`,\n `sum_revenue_cancelled_order`,\n `count_active_on_site`,\n `unique_count_active_on_site`,\n `count_viewed_product`,\n `unique_count_viewed_product`,\n `count_ordered_product`,\n `unique_count_ordered_product`,\n `count_placed_order`,\n `unique_count_placed_order`,\n `count_refunded_order`,\n `unique_count_refunded_order`,\n `count_cancelled_order`,\n `unique_count_cancelled_order`,\n `count_fulfilled_order`,\n `unique_count_fulfilled_order`,\n `count_received_email`,\n `unique_count_received_email`,\n `count_clicked_email`,\n `unique_count_clicked_email`,\n `count_opened_email`,\n `unique_count_opened_email`,\n `count_bounced_email`,\n `unique_count_bounced_email`,\n `count_marked_email_as_spam`,\n `unique_count_marked_email_as_spam`,\n `count_dropped_email`,\n `unique_count_dropped_email`,\n `count_subscribed_to_list`,\n `unique_count_subscribed_to_list`,\n `count_unsubscribed_to_list`,\n `unique_count_unsubscribed_to_list`,\n `count_unsubscribed`,\n `unique_count_unsubscribed`,\n `count_updated_email_preferences`,\n `unique_count_updated_email_preferences`,\n `count_subscribed_to_back_in_stock`,\n `unique_count_subscribed_to_back_in_stock`,\n `count_merged_profile`,\n `unique_count_merged_profile`,\n `count_received_sms`,\n `unique_count_received_sms`,\n `count_clicked_sms`,\n `unique_count_clicked_sms`,\n `count_consented_to_receive_sms`,\n `unique_count_consented_to_receive_sms`,\n `count_sent_sms`,\n `unique_count_sent_sms`,\n `count_unsubscribed_from_sms`,\n `unique_count_unsubscribed_from_sms`,\n `count_failed_to_deliver_sms`,\n `unique_count_failed_to_deliver_sms`\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n to_hex(md5(cast(coalesce(cast(flow_id as \n string\n), '') || '-' || coalesce(cast(variation_id as \n string\n), '') as \n string\n))) as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__flows`"}, "model.klaviyo.klaviyo__campaigns": {"raw_sql": "with campaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\ncampaign_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\ncampaign_join as (\n \n {% set exclude_fields = [ 'last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n campaign.*, -- has campaign_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.surrogate_key(['campaign_id','variation_id']) }} as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_klaviyo", "fqn": ["klaviyo", "klaviyo__campaigns"], "unique_id": "model.klaviyo.klaviyo__campaigns", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__campaigns.sql", "original_file_path": "models/klaviyo__campaigns.sql", "name": "klaviyo__campaigns", "alias": "klaviyo__campaigns", "checksum": {"name": "sha256", "checksum": "3f86c2f589802530165ac6e6244681db0f42091784c29a6ae17b752f5ed4cd6f"}, "tags": [], "refs": [["stg_klaviyo__campaign"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique campaign versions. A campaign with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"campaign_variation_key": {"name": "campaign_variation_key", "description": "Unique key hashed on the campaign and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__campaigns.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1665703195.518867, "compiled_sql": "with campaign as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign`\n),\n\ncampaign_metrics as (\n\n select *\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__campaign_flow_metrics`\n),\n\ncampaign_join as (\n \n \n\n select\n campaign.*, -- has campaign_id and source_relation\n \n\n `variation_id`,\n `total_count_unique_people`,\n `first_event_at`,\n `last_event_at`,\n `sum_revenue_refunded_order`,\n `sum_revenue_placed_order`,\n `sum_revenue_ordered_product`,\n `sum_revenue_checkout_started`,\n `sum_revenue_cancelled_order`,\n `count_active_on_site`,\n `unique_count_active_on_site`,\n `count_viewed_product`,\n `unique_count_viewed_product`,\n `count_ordered_product`,\n `unique_count_ordered_product`,\n `count_placed_order`,\n `unique_count_placed_order`,\n `count_refunded_order`,\n `unique_count_refunded_order`,\n `count_cancelled_order`,\n `unique_count_cancelled_order`,\n `count_fulfilled_order`,\n `unique_count_fulfilled_order`,\n `count_received_email`,\n `unique_count_received_email`,\n `count_clicked_email`,\n `unique_count_clicked_email`,\n `count_opened_email`,\n `unique_count_opened_email`,\n `count_bounced_email`,\n `unique_count_bounced_email`,\n `count_marked_email_as_spam`,\n `unique_count_marked_email_as_spam`,\n `count_dropped_email`,\n `unique_count_dropped_email`,\n `count_subscribed_to_list`,\n `unique_count_subscribed_to_list`,\n `count_unsubscribed_to_list`,\n `unique_count_unsubscribed_to_list`,\n `count_unsubscribed`,\n `unique_count_unsubscribed`,\n `count_updated_email_preferences`,\n `unique_count_updated_email_preferences`,\n `count_subscribed_to_back_in_stock`,\n `unique_count_subscribed_to_back_in_stock`,\n `count_merged_profile`,\n `unique_count_merged_profile`,\n `count_received_sms`,\n `unique_count_received_sms`,\n `count_clicked_sms`,\n `unique_count_clicked_sms`,\n `count_consented_to_receive_sms`,\n `unique_count_consented_to_receive_sms`,\n `count_sent_sms`,\n `unique_count_sent_sms`,\n `count_unsubscribed_from_sms`,\n `unique_count_unsubscribed_from_sms`,\n `count_failed_to_deliver_sms`,\n `unique_count_failed_to_deliver_sms`\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n to_hex(md5(cast(coalesce(cast(campaign_id as \n string\n), '') || '-' || coalesce(cast(variation_id as \n string\n), '') as \n string\n))) as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__campaigns`"}, "model.klaviyo.klaviyo__events": {"raw_sql": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('snowflake', 'postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from {{ ref('int_klaviyo__event_attribution') }}\n\n {% if is_incremental() %}\n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt_utils.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt_utils.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n {% endif %}\n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n {% set exclude_fields = ['touch_session', 'last_touch_id', 'session_start_at', 'session_event_type', 'type', 'session_touch_type'] %}\n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n {{ dbt_utils.star(from=ref('int_klaviyo__event_attribution'), except=exclude_fields) }},\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\nflow as (\n\n select *\n from {{ var('flow') }}\n),\n\nperson as (\n\n select *\n from {{ var('person') }}\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from {{ var('metric') }}\n),\n\nintegration as (\n\n select *\n from {{ var('integration') }}\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.star", "macro.dbt_utils.dateadd", "macro.dbt_utils.type_timestamp"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "partition_by": {"field": "occurred_on", "data_type": "date"}, "incremental_strategy": "merge", "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_klaviyo", "fqn": ["klaviyo", "klaviyo__events"], "unique_id": "model.klaviyo.klaviyo__events", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__events.sql", "original_file_path": "models/klaviyo__events.sql", "name": "klaviyo__events", "alias": "klaviyo__events", "checksum": {"name": "sha256", "checksum": "57d9d0880b095c3d94680250844b52ad63a63755b2b25870f6ba491933308951"}, "tags": [], "refs": [["int_klaviyo__event_attribution"], ["int_klaviyo__event_attribution"], ["stg_klaviyo__campaign"], ["stg_klaviyo__flow"], ["stg_klaviyo__person"], ["stg_klaviyo__metric"], ["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "Table of Klaviyo events, enriched with attribution data (see `int_klaviyo__event_attribution` for details), and information regarding the event's associated user, flow, campaign, and platform/integration. \nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_at": {"name": "last_touch_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This will be null if the event is not attributed to any flow or campaign. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms). This will be null if the event is not attributed to any flow or campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_city": {"name": "person_city", "description": "City that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_country": {"name": "person_country", "description": "Country that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_region": {"name": "person_region", "description": "Region or state that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_email": {"name": "person_email", "description": "The email address and the unique identifier for the person who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_timezone": {"name": "person_timezone", "description": "Timezone that the person who triggered this event is situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the platform that triggered the event (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_category": {"name": "integration_category", "description": "Use-case category of the platform that sent the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__events.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "klaviyo", "unique_key": "unique_event_id", "partition_by": {"field": "occurred_on", "data_type": "date"}, "incremental_strategy": "merge", "file_format": "delta"}, "created_at": 1665703195.5140622, "compiled_sql": "\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__event_attribution`\n\n \n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n datetime_add(\n cast( max(_fivetran_synced) as datetime),\n interval -1 hour\n )\n\n \n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\n ), '2012-01-01') as \n timestamp\n ) -- klaviyo was founded in 2012, so let's default the min date to then\n \n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n \n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n \n\n `variation_id`,\n `campaign_id`,\n `occurred_at`,\n `flow_id`,\n `flow_message_id`,\n `event_id`,\n `metric_id`,\n `person_id`,\n `uuid`,\n `numeric_value`,\n `_fivetran_synced`,\n `source_relation`,\n `occurred_on`,\n `unique_event_id`,\n `touch_id`,\n `touch_type`,\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign`\n),\n\nflow as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow`\n),\n\nperson as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric`\n),\n\nintegration as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration`\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`"}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"raw_sql": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any person-level metrics to the flow/campaign level\n , sum( {{ col.name }} ) as {{ col.name }}\n\n {% if 'sum_revenue' not in col.name|lower %} -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when {{ col.name }} > 0 then 1 else 0 end) as {{ 'unique_' ~ col.name }}\n\n {% endif %}\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__campaign_flow_metrics"], "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__campaign_flow_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "name": "int_klaviyo__campaign_flow_metrics", "alias": "int_klaviyo__campaign_flow_metrics", "checksum": {"name": "sha256", "checksum": "05f2223e2d8ab2cbcb57045b3008aee2e9c74f1803cb5e3b658b8b92b7b22e9d"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the campaign or flow AND variation grain. A campaign with A/B versions will have 2 records. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1665703195.5553238, "compiled_sql": "with person_campaign_flow as (\n\n select *\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__person_campaign_flow`\n),\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_refunded_order ) as sum_revenue_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_placed_order ) as sum_revenue_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_ordered_product ) as sum_revenue_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_checkout_started ) as sum_revenue_checkout_started\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_cancelled_order ) as sum_revenue_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_active_on_site ) as count_active_on_site\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_active_on_site > 0 then 1 else 0 end) as unique_count_active_on_site\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_viewed_product ) as count_viewed_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_viewed_product > 0 then 1 else 0 end) as unique_count_viewed_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_ordered_product ) as count_ordered_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_ordered_product > 0 then 1 else 0 end) as unique_count_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_placed_order ) as count_placed_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_placed_order > 0 then 1 else 0 end) as unique_count_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_refunded_order ) as count_refunded_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_refunded_order > 0 then 1 else 0 end) as unique_count_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_cancelled_order ) as count_cancelled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_cancelled_order > 0 then 1 else 0 end) as unique_count_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_fulfilled_order ) as count_fulfilled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_fulfilled_order > 0 then 1 else 0 end) as unique_count_fulfilled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_email ) as count_received_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_email > 0 then 1 else 0 end) as unique_count_received_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_email ) as count_clicked_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_email > 0 then 1 else 0 end) as unique_count_clicked_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_opened_email ) as count_opened_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_opened_email > 0 then 1 else 0 end) as unique_count_opened_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_bounced_email ) as count_bounced_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_bounced_email > 0 then 1 else 0 end) as unique_count_bounced_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_marked_email_as_spam ) as count_marked_email_as_spam\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_marked_email_as_spam > 0 then 1 else 0 end) as unique_count_marked_email_as_spam\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_dropped_email ) as count_dropped_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_dropped_email > 0 then 1 else 0 end) as unique_count_dropped_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_list ) as count_subscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_list > 0 then 1 else 0 end) as unique_count_subscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_to_list ) as count_unsubscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_to_list > 0 then 1 else 0 end) as unique_count_unsubscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed ) as count_unsubscribed\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed > 0 then 1 else 0 end) as unique_count_unsubscribed\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_updated_email_preferences ) as count_updated_email_preferences\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_updated_email_preferences > 0 then 1 else 0 end) as unique_count_updated_email_preferences\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_back_in_stock ) as count_subscribed_to_back_in_stock\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_back_in_stock > 0 then 1 else 0 end) as unique_count_subscribed_to_back_in_stock\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_merged_profile ) as count_merged_profile\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_merged_profile > 0 then 1 else 0 end) as unique_count_merged_profile\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_sms ) as count_received_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_sms > 0 then 1 else 0 end) as unique_count_received_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_sms ) as count_clicked_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_sms > 0 then 1 else 0 end) as unique_count_clicked_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_consented_to_receive_sms ) as count_consented_to_receive_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_consented_to_receive_sms > 0 then 1 else 0 end) as unique_count_consented_to_receive_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_sent_sms ) as count_sent_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_sent_sms > 0 then 1 else 0 end) as unique_count_sent_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_from_sms ) as count_unsubscribed_from_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_from_sms > 0 then 1 else 0 end) as unique_count_unsubscribed_from_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_failed_to_deliver_sms ) as count_failed_to_deliver_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_failed_to_deliver_sms > 0 then 1 else 0 end) as unique_count_failed_to_deliver_sms\n\n \n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__campaign_flow_metrics`"}, "model.klaviyo.int_klaviyo__person_metrics": {"raw_sql": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( {{ col.name }} ) as {{ 'total_' ~ col.name }}\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n {% if 'sum_revenue' in col.name|lower %}\n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then {{ col.name }} else 0 end ) as {{ 'organic_' ~ col.name }}\n {% endif %}\n\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__person_metrics"], "unique_id": "model.klaviyo.int_klaviyo__person_metrics", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__person_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__person_metrics.sql", "name": "int_klaviyo__person_metrics", "alias": "int_klaviyo__person_metrics", "checksum": {"name": "sha256", "checksum": "a17b4d3bfd7f6a19bc40dc8199f22c30594994645f31cc2bd72280e8ac429259"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the person grain. \n**Counts** of instances of the events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. \nThese columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__person_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1665703195.5571148, "compiled_sql": "with person_campaign_flow as (\n\n select *\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__person_campaign_flow`\n),\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_refunded_order ) as total_sum_revenue_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_refunded_order else 0 end ) as organic_sum_revenue_refunded_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_placed_order ) as total_sum_revenue_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_placed_order else 0 end ) as organic_sum_revenue_placed_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_ordered_product ) as total_sum_revenue_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_ordered_product else 0 end ) as organic_sum_revenue_ordered_product\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_checkout_started ) as total_sum_revenue_checkout_started\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_checkout_started else 0 end ) as organic_sum_revenue_checkout_started\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_cancelled_order ) as total_sum_revenue_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_cancelled_order else 0 end ) as organic_sum_revenue_cancelled_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_active_on_site ) as total_count_active_on_site\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_viewed_product ) as total_count_viewed_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_ordered_product ) as total_count_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_placed_order ) as total_count_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_refunded_order ) as total_count_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_cancelled_order ) as total_count_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_fulfilled_order ) as total_count_fulfilled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_email ) as total_count_received_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_email ) as total_count_clicked_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_opened_email ) as total_count_opened_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_bounced_email ) as total_count_bounced_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_marked_email_as_spam ) as total_count_marked_email_as_spam\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_dropped_email ) as total_count_dropped_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_list ) as total_count_subscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_to_list ) as total_count_unsubscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed ) as total_count_unsubscribed\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_updated_email_preferences ) as total_count_updated_email_preferences\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_back_in_stock ) as total_count_subscribed_to_back_in_stock\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_merged_profile ) as total_count_merged_profile\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_sms ) as total_count_received_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_sms ) as total_count_clicked_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_consented_to_receive_sms ) as total_count_consented_to_receive_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_sent_sms ) as total_count_sent_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_from_sms ) as total_count_unsubscribed_from_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_failed_to_deliver_sms ) as total_count_failed_to_deliver_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__person_metrics`"}, "model.klaviyo.int_klaviyo__event_attribution": {"raw_sql": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from {{ var('event_table') }}\n\n {% if is_incremental() %}\n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from {{ var('event_table') }}\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt_utils.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt_utils.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n {% endif %}\n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when {{ dbt_utils.datediff('session_start_at', 'occurred_at', 'hour') }} <= (\n case \n when lower(session_event_type) like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.datediff", "macro.dbt_utils.dateadd", "macro.dbt_utils.type_timestamp"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "partition_by": {"field": "occurred_on", "data_type": "date"}, "incremental_strategy": "merge", "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__event_attribution"], "unique_id": "model.klaviyo.int_klaviyo__event_attribution", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__event_attribution.sql", "original_file_path": "models/intermediate/int_klaviyo__event_attribution.sql", "name": "int_klaviyo__event_attribution", "alias": "int_klaviyo__event_attribution", "checksum": {"name": "sha256", "checksum": "0f50b3c667fde764eb0671135da6a44202089275d90ab399b5583c33bc71613e"}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "Table enriching events with an additional layer of last-touch attribution. Though Klaviyo already performs attribution on events each day, this extra step is necessary, as certain kinds of events/metrics never get attributed to flows or campaigns via Klaviyo's internal model. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with conversions. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. Note that this refers to the events eligible to credit campaigns and flows with conversions, _not_ the events eligible to receive attribution (all kinds of events are privy to this).\nSimilar to Klaviyo, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_session": {"name": "touch_session", "description": "ID used to batch an individual person's events into attribution-groups. Each event that comes attributed to a campaign or flow begins a new session/batch, in which the following events without a flow/campaign_id have the same `touch_session` (and may be attributed to the same flow/campaign).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_start_at": {"name": "session_start_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This is the beginning of the event's touch-session.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_event_type": {"name": "session_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_id": {"name": "last_touch_id", "description": "The campaign or flow that the package attributed the event to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__event_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "int_klaviyo", "unique_key": "unique_event_id", "partition_by": {"field": "occurred_on", "data_type": "date"}, "incremental_strategy": "merge", "file_format": "delta"}, "created_at": 1665703195.5539782, "compiled_sql": "\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event`\n\n \n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event`\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n datetime_add(\n cast( max(_fivetran_synced) as datetime),\n interval -1 hour\n )\n\n \n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__event_attribution`\n ), '2012-01-01') as \n timestamp\n ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n \n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when datetime_diff(\n cast(occurred_at as datetime),\n cast(session_start_at as datetime),\n hour\n ) <= (\n case \n when lower(session_event_type) like '%sms%' then 24\n else 120 end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__event_attribution`"}, "model.shopify.shopify__customer_cohorts": {"raw_sql": "with calendar as (\n\n select *\n from {{ ref('shopify__calendar') }}\n where cast({{ dbt_utils.date_trunc('month','date_day') }} as date) = date_day\n\n), customers as (\n\n select *\n from {{ ref('shopify__customers') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n {{ dbt_utils.date_trunc('month', 'first_order_timestamp') }} as cohort_month\n from calendar\n inner join customers\n on cast({{ dbt_utils.date_trunc('month', 'first_order_timestamp') }} as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast({{ dbt_utils.date_trunc('month', 'created_timestamp') }} as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n {% set partition_string = 'partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row' %}\n\n select\n *,\n sum(total_price_in_month) over ({{ partition_string }}) as total_price_lifetime,\n sum(order_count_in_month) over ({{ partition_string }}) as order_count_lifetime,\n sum(line_item_count_in_month) over ({{ partition_string }}) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n {{ dbt_utils.surrogate_key(['date_month','customer_id','source_relation']) }} as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_trunc", "macro.dbt_utils.surrogate_key"], "nodes": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__customer_cohorts"], "unique_id": "model.shopify.shopify__customer_cohorts", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customer_cohorts.sql", "original_file_path": "models/shopify__customer_cohorts.sql", "name": "shopify__customer_cohorts", "alias": "shopify__customer_cohorts", "checksum": {"name": "sha256", "checksum": "4179fd82cc1aafd2c0e61ad2e4d8d0a2d4a6daf2afbb91a70bc77cc7311cf1aa"}, "tags": [], "refs": [["shopify__calendar"], ["shopify__customers"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a customer's performance in a calendar month.", "columns": {"cohort_month": {"name": "cohort_month", "description": "The month the cohort belongs to, i.e the first month the customer had an order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cohort_month_number": {"name": "cohort_month_number", "description": "The 'number' of the `date_month` of the record, i.e. how many months from their start month this cohort occurred", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_cohort_id": {"name": "customer_cohort_id", "description": "Unique key representing a customer in a given month.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the related customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "date_month": {"name": "date_month", "description": "The calendar month the customer stats relate to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp of the customer's first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_in_month": {"name": "line_item_count_in_month", "description": "Number of line items purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_lifetime": {"name": "line_item_count_lifetime", "description": "Number of line items purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_in_month": {"name": "order_count_in_month", "description": "Number of orders purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_lifetime": {"name": "order_count_lifetime", "description": "Number of orders purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_in_month": {"name": "total_price_in_month", "description": "Total amount (in currency) purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_lifetime": {"name": "total_price_lifetime", "description": "Total amount (in currency) up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customer_cohorts.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.575144, "compiled_sql": "with calendar as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__calendar`\n where cast(timestamp_trunc(\n cast(date_day as timestamp),\n month\n ) as date) = date_day\n\n), customers as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__customers`\n\n), orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__orders`\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n timestamp_trunc(\n cast(first_order_timestamp as timestamp),\n month\n ) as cohort_month\n from calendar\n inner join customers\n on cast(timestamp_trunc(\n cast(first_order_timestamp as timestamp),\n month\n ) as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast(timestamp_trunc(\n cast(created_timestamp as timestamp),\n month\n ) as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n \n\n select\n *,\n sum(total_price_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as total_price_lifetime,\n sum(order_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as order_count_lifetime,\n sum(line_item_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n to_hex(md5(cast(coalesce(cast(date_month as \n string\n), '') || '-' || coalesce(cast(customer_id as \n string\n), '') || '-' || coalesce(cast(source_relation as \n string\n), '') as \n string\n))) as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__customer_cohorts`"}, "model.shopify.shopify__orders": {"raw_sql": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__orders__order_line_aggregates') }}\n\n{% if var('shopify__using_order_adjustment', true) %}\n), order_adjustments as (\n\n select *\n from {{ var('shopify_order_adjustment') }}\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n{% endif %}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast({{ fivetran_utils.json_parse(\"total_shipping_price_set\",[\"shop_money\",\"amount\"]) }} as {{ dbt_utils.type_float() }}) ,0) as shipping_cost,\n \n {% if var('shopify__using_order_adjustment', true) %}\n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n {% endif %}\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n {% endif %}\n (orders.total_price\n {% if var('shopify__using_order_adjustment', true) %}\n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n {% endif %}\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n {% endif %} ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n {% endif %}\n {% if var('shopify__using_order_adjustment', true) %}\n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n {% endif %}\n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.json_parse", "macro.dbt_utils.type_float"], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__orders__order_line_aggregates", "model.shopify_source.stg_shopify__order_adjustment", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__orders"], "unique_id": "model.shopify.shopify__orders", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__orders.sql", "original_file_path": "models/shopify__orders.sql", "name": "shopify__orders", "alias": "shopify__orders", "checksum": {"name": "sha256", "checksum": "314b165b27050181ab0f5a6e4bcd722c3f6918af348f575dd942f4c6aee4eb0c"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__orders__order_line_aggregates"], ["stg_shopify__order_adjustment"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.5872, "compiled_sql": "with __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n), __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n\n), order_line_refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), order_lines as (\n\n select *\n from __dbt__cte__shopify__orders__order_line_aggregates\n\n\n), order_adjustments as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_adjustment`\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast(\n\n \n json_extract_scalar(total_shipping_price_set, '$.shop_money.amount')\n\n as \n float64\n) ,0) as shipping_cost,\n \n \n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n \n\n \n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n \n (orders.total_price\n \n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n \n \n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n \n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n \n \n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n \n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}, {"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n\n), order_line_refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__orders`"}, "model.shopify.shopify__products": {"raw_sql": "with products as (\n\n select *\n from {{ var('shopify_product') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders')}}\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n {% endif %}\n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n {% endif %}\n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__product", "model.shopify.shopify__order_lines", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__products"], "unique_id": "model.shopify.shopify__products", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__products.sql", "original_file_path": "models/shopify__products.sql", "name": "shopify__products", "alias": "shopify__products", "checksum": {"name": "sha256", "checksum": "e699f3d418cc215e557b5a7ad0705f82470c62c8b54b3fbb29a2896c507ba033"}, "tags": [], "refs": [["stg_shopify__product"], ["shopify__order_lines"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold": {"name": "quantity_sold", "description": "Quantity of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold": {"name": "subtotal_sold", "description": "Total amount of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold_net_refunds": {"name": "quantity_sold_net_refunds", "description": "Quantity of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold_net_refunds": {"name": "subtotal_sold_net_refunds", "description": "Total amount of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the product was first ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the product was most recently ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__products.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.5931342, "compiled_sql": "with products as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product`\n\n), order_lines as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__order_lines`\n\n), orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__orders`\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n \n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n \n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n \n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n \n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__products`"}, "model.shopify.shopify__transactions": {"raw_sql": "with transactions as (\n select *\n from {{ var('shopify_transaction') }}\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt_utils.type_numeric() }} ),1) as exchange_rate,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt_utils.type_numeric() }} ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.json_parse", "macro.dbt_utils.type_numeric"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__transactions"], "unique_id": "model.shopify.shopify__transactions", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__transactions.sql", "original_file_path": "models/shopify__transactions.sql", "name": "shopify__transactions", "alias": "shopify__transactions", "checksum": {"name": "sha256", "checksum": "88e4a9aa6d2acc8dbe0e1d3f280087b5adb6a730391785680d0bf112b0923906"}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of the date the record was synced by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate between the home currency and the currency of sale at the time of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_calculated_amount": {"name": "currency_exchange_calculated_amount", "description": "The total amount of the transaction with the currency exchange rate applied.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__transactions.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.605672, "compiled_sql": "with transactions as (\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__transaction`\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif(\n\n \n json_extract_scalar(receipt, '$.charges.data.0.balance_transaction.exchange_rate')\n\n, '') as \n numeric\n ),1) as exchange_rate,\n coalesce(cast(nullif(\n\n \n json_extract_scalar(receipt, '$.charges.data.0.balance_transaction.exchange_rate')\n\n, '') as \n numeric\n ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`"}, "model.shopify.shopify__customers": {"raw_sql": "with customers as (\n\n select \n {{ dbt_utils.star(from=ref('stg_shopify__customer'), except=[\"orders_count\", \"total_spent\"]) }}\n from {{ var('shopify_customer') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__customers__order_aggregates' )}}\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer", "model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__customers"], "unique_id": "model.shopify.shopify__customers", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customers.sql", "original_file_path": "models/shopify__customers.sql", "name": "shopify__customers", "alias": "shopify__customers", "checksum": {"name": "sha256", "checksum": "70e28dce05bc26f7fc7678928e4bf4ab455d399c6f314f54d3c4671be96d3b7e"}, "tags": [], "refs": [["stg_shopify__customer"], ["stg_shopify__customer"], ["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customers.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.590558, "compiled_sql": "with __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), transactions as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),customers as (\n\n select \n \n\n `_fivetran_synced`,\n `has_accepted_marketing`,\n `created_timestamp`,\n `default_address_id`,\n `email`,\n `first_name`,\n `customer_id`,\n `last_name`,\n `phone`,\n `account_state`,\n `is_tax_exempt`,\n `updated_timestamp`,\n `is_verified_email`,\n `source_relation`\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__customer`\n\n), orders as (\n\n select *\n from __dbt__cte__shopify__customers__order_aggregates\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), transactions as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__customers`"}, "model.shopify.shopify__order_lines": {"raw_sql": "with order_lines as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), product_variants as (\n\n select *\n from {{ var('shopify_product_variant') }}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n order_lines.*,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n {% endif %}\n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n {% endif %}\n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "shopify__order_lines"], "unique_id": "model.shopify.shopify__order_lines", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__order_lines.sql", "original_file_path": "models/shopify__order_lines.sql", "name": "shopify__order_lines", "alias": "shopify__order_lines", "checksum": {"name": "sha256", "checksum": "c9fa8308e1257375b69ec4b40135a4d1ad64fab1d9e0c14b7a353132438df5d8"}, "tags": [], "refs": [["stg_shopify__order_line"], ["stg_shopify__product_variant"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents a line item of an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_quantity": {"name": "refunded_quantity", "description": "Quantity of the item that has been refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_net_refunds": {"name": "quantity_net_refunds", "description": "Quantity ordered, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_barcode": {"name": "variant_barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_compare_at_price": {"name": "variant_compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_created_at": {"name": "variant_created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_fulfillment_service": {"name": "variant_fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_grams": {"name": "variant_grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_image_id": {"name": "variant_image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_management": {"name": "variant_inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_policy": {"name": "variant_inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_quantity": {"name": "variant_inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_1": {"name": "variant_option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_2": {"name": "variant_option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_3": {"name": "variant_option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_position": {"name": "variant_position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_price": {"name": "variant_price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_requiring_shipping": {"name": "variant_is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_sku": {"name": "variant_sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_taxable": {"name": "variant_is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_title": {"name": "variant_title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_updated_at": {"name": "variant_updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight": {"name": "variant_weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight_unit": {"name": "variant_weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_subtotal": {"name": "refunded_subtotal", "description": "Subtotal amount of the refund applied to the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_net_refunds": {"name": "subtotal_net_refunds", "description": "Subtotal of the order line with refunds subtracted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "Image id of the product variant associated with the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__order_lines.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.6001742, "compiled_sql": "with __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n\n), order_line_refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),order_lines as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), product_variants as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_variant`\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n order_lines.*,\n\n \n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n \n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n \n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n \n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n\n), order_line_refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__order_lines`"}, "model.shopify.shopify__calendar": {"raw_sql": "{{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=\"cast('2019-01-01' as date)\",\n end_date=\"current_date\"\n )\n}}", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_spine"], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "utils", "shopify__calendar"], "unique_id": "model.shopify.shopify__calendar", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "utils/shopify__calendar.sql", "original_file_path": "models/utils/shopify__calendar.sql", "name": "shopify__calendar", "alias": "shopify__calendar", "checksum": {"name": "sha256", "checksum": "330711091f6b47526ac5e8bc39960b2d171633362c0e10b666931be500abeddd"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/utils/shopify__calendar.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1665703195.226971, "compiled_sql": "\n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n + \n \n p5.generated_number * power(2, 5)\n + \n \n p6.generated_number * power(2, 6)\n + \n \n p7.generated_number * power(2, 7)\n + \n \n p8.generated_number * power(2, 8)\n + \n \n p9.generated_number * power(2, 9)\n + \n \n p10.generated_number * power(2, 10)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n cross join \n \n p as p5\n cross join \n \n p as p6\n cross join \n \n p as p7\n cross join \n \n p as p8\n cross join \n \n p as p9\n cross join \n \n p as p10\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 1381\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n datetime_add(\n cast( cast('2019-01-01' as date) as datetime),\n interval row_number() over (order by 1) - 1 day\n )\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= current_date\n\n)\n\nselect * from filtered\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify`.`shopify__calendar`"}, "model.shopify.shopify__orders__order_line_aggregates": {"raw_sql": "with order_line as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_line_aggregates"], "unique_id": "model.shopify.shopify__orders__order_line_aggregates", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_line_aggregates.sql", "original_file_path": "models/intermediate/shopify__orders__order_line_aggregates.sql", "name": "shopify__orders__order_line_aggregates", "alias": "shopify__orders__order_line_aggregates", "checksum": {"name": "sha256", "checksum": "837181b671b2beb8e58924357d213e33d6479a47e16c604db35cbb6ce6489fa8"}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_line_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1665703195.625797, "compiled_sql": "with order_line as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__customers__order_aggregates": {"raw_sql": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), transactions as (\n\n select *\n from {{ ref('shopify__transactions' )}}\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "intermediate", "shopify__customers__order_aggregates"], "unique_id": "model.shopify.shopify__customers__order_aggregates", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__customers__order_aggregates.sql", "original_file_path": "models/intermediate/shopify__customers__order_aggregates.sql", "name": "shopify__customers__order_aggregates", "alias": "shopify__customers__order_aggregates", "checksum": {"name": "sha256", "checksum": "902e082d29e1b00c443c6d18109a496dc53a1a7e927134bc8a523cdc106076bd"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__customers__order_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1665703195.625571, "compiled_sql": "with orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), transactions as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__orders__order_refunds": {"raw_sql": "{{ config(enabled=fivetran_utils.enabled_vars(['shopify__using_order_line_refund','shopify__using_refund'])) }}\n\nwith refunds as (\n\n select *\n from {{ var('shopify_refund') }}\n\n), order_line_refunds as (\n\n select *\n from {{ var('shopify_order_line_refund') }}\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_refunds"], "unique_id": "model.shopify.shopify__orders__order_refunds", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_refunds.sql", "original_file_path": "models/intermediate/shopify__orders__order_refunds.sql", "name": "shopify__orders__order_refunds", "alias": "shopify__orders__order_refunds", "checksum": {"name": "sha256", "checksum": "1bcc3be258e3bdda4c6845e465f95e7e5b4e0eee823b169e0cd5e7eff4cf7792"}, "tags": [], "refs": [["stg_shopify__refund"], ["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_refunds.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral", "enabled": true}, "created_at": 1665703195.625984, "compiled_sql": "\n\nwith refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n\n), order_line_refunds as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"raw_sql": "with shopify_customers as (\n\n select *\n from {{ ref('int__shopify_customer_rollup') }}\n\n), klaviyo_persons as (\n\n select *\n from {{ ref('int__klaviyo_person_rollup') }}\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n {{ dbt_utils.star(from=ref('int__shopify_customer_rollup'), relation_alias='shopify_customers', prefix='shopify_',\n except=['source_relation','email', 'full_name', 'customer_ids', 'phone_numbers', 'first_shopify_account_made_at','last_shopify_account_made_at', \n 'last_updated_at', 'is_verified_email'] ) \n }},\n shopify_customers.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__klaviyo_person_rollup'), relation_alias='klaviyo_persons', prefix='klaviyo_',\n except=['source_relation','email', 'full_name', 'first_klaviyo_account_made_at', 'last_klaviyo_account_made_at', 'person_ids', 'phone_numbers', 'last_updated_at'] ) \n }},\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__customer_enhanced"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__customer_enhanced.sql", "original_file_path": "models/shopify_holistic_reporting__customer_enhanced.sql", "name": "shopify_holistic_reporting__customer_enhanced", "alias": "shopify_holistic_reporting__customer_enhanced", "checksum": {"name": "sha256", "checksum": "db442dfeedb2bb460e284b8e3d2742abc3f9ae90d8db670d6019afc567b53a09"}, "tags": [], "refs": [["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"], ["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"]], "sources": [], "metrics": [], "description": "Table consolidating customers and their information and activity metrics from across all platforms. A full outer join is performed in order to union together users who may not exist in both sources, and personal information is coalesced to consolidate as much information as possible. Includes any custom columns specified in passthrough variables for both Shopify and Klaviyo.\nFor **Klaviyo** metrics: Counts of instances of triggered events and sums of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the klaviyo__count_metrics and klaviyo__sum_revenue_metricsvariables, respectively. See the Klaviyo dbt_project.yml file for the default metrics used. These columns will be prefixed with total_count_, total_sum_revenue_ (organic + attributed), and organic_sum_revenue_ (not attributed to a campaign or flow).\nColumns that come _only_ from one source will be prefixed with that source name (ie klaviyo_)\n", "columns": {"shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_has_accepted_marketing": {"name": "shopify_has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_first_created_at": {"name": "shopify_customer_first_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_created_at": {"name": "shopify_customer_last_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_updated_at": {"name": "shopify_customer_last_updated_at", "description": "Timestamp of when the shopify customer was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_default_address_id": {"name": "shopify_default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_ids": {"name": "shopify_customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_count_orders": {"name": "shopify_lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "The unique phone number (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_account_state": {"name": "shopify_account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_is_tax_exempt": {"name": "shopify_is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_updated_at": {"name": "shopify_last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_shopify_email_verified": {"name": "is_shopify_email_verified", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_first_order_at": {"name": "shopify_first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_order_at": {"name": "shopify_last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_average_order_value": {"name": "shopify_average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_spent": {"name": "shopify_lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_refunded": {"name": "shopify_lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_amount": {"name": "shopify_lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_id": {"name": "klaviyo_person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_1": {"name": "klaviyo_address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_2": {"name": "klaviyo_address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_city": {"name": "klaviyo_city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_country": {"name": "klaviyo_country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_zip": {"name": "klaviyo_zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_created_at": {"name": "klaviyo_person_created_at", "description": "Timestamp of when the person's profile was created in Klaviyo.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_latitude": {"name": "klaviyo_latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_longitude": {"name": "klaviyo_longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_organization": {"name": "klaviyo_organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_region": {"name": "klaviyo_region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_timezone": {"name": "klaviyo_timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_title": {"name": "klaviyo_title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_updated_at": {"name": "klaviyo_person_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_campaigns": {"name": "klaviyo_count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_flows": {"name": "klaviyo_count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_campaign_touch_at": {"name": "klaviyo_first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_campaign_touch_at": {"name": "klaviyo_last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_flow_touch_at": {"name": "klaviyo_first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_flow_touch_at": {"name": "klaviyo_last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__customer_enhanced.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1665703195.641831, "compiled_sql": "with shopify_customers as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`int__shopify_customer_rollup`\n\n), klaviyo_persons as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`int__klaviyo_person_rollup`\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n \n\n shopify_customers.`first_order_at` as `shopify_first_order_at`,\n shopify_customers.`last_order_at` as `shopify_last_order_at`,\n shopify_customers.`lifetime_total_spent` as `shopify_lifetime_total_spent`,\n shopify_customers.`lifetime_total_refunded` as `shopify_lifetime_total_refunded`,\n shopify_customers.`lifetime_total_amount` as `shopify_lifetime_total_amount`,\n shopify_customers.`lifetime_count_orders` as `shopify_lifetime_count_orders`,\n shopify_customers.`average_order_value` as `shopify_average_order_value`,\n shopify_customers.`has_accepted_marketing` as `shopify_has_accepted_marketing`,\n shopify_customers.`is_tax_exempt` as `shopify_is_tax_exempt`,\n shopify_customers.`default_address_id` as `shopify_default_address_id`,\n shopify_customers.`account_state` as `shopify_account_state`,\n shopify_customers.source_relation as shopify_source_relation,\n\n \n\n klaviyo_persons.`first_event_at` as `klaviyo_first_event_at`,\n klaviyo_persons.`last_event_at` as `klaviyo_last_event_at`,\n klaviyo_persons.`first_campaign_touch_at` as `klaviyo_first_campaign_touch_at`,\n klaviyo_persons.`last_campaign_touch_at` as `klaviyo_last_campaign_touch_at`,\n klaviyo_persons.`first_flow_touch_at` as `klaviyo_first_flow_touch_at`,\n klaviyo_persons.`last_flow_touch_at` as `klaviyo_last_flow_touch_at`,\n klaviyo_persons.`count_total_campaigns` as `klaviyo_count_total_campaigns`,\n klaviyo_persons.`count_total_flows` as `klaviyo_count_total_flows`,\n klaviyo_persons.`address_1` as `klaviyo_address_1`,\n klaviyo_persons.`address_2` as `klaviyo_address_2`,\n klaviyo_persons.`city` as `klaviyo_city`,\n klaviyo_persons.`country` as `klaviyo_country`,\n klaviyo_persons.`zip` as `klaviyo_zip`,\n klaviyo_persons.`latitude` as `klaviyo_latitude`,\n klaviyo_persons.`longitude` as `klaviyo_longitude`,\n klaviyo_persons.`organization` as `klaviyo_organization`,\n klaviyo_persons.`region` as `klaviyo_region`,\n klaviyo_persons.`timezone` as `klaviyo_timezone`,\n klaviyo_persons.`title` as `klaviyo_title`,\n klaviyo_persons.`total_sum_revenue_refunded_order` as `klaviyo_total_sum_revenue_refunded_order`,\n klaviyo_persons.`organic_sum_revenue_refunded_order` as `klaviyo_organic_sum_revenue_refunded_order`,\n klaviyo_persons.`total_sum_revenue_placed_order` as `klaviyo_total_sum_revenue_placed_order`,\n klaviyo_persons.`organic_sum_revenue_placed_order` as `klaviyo_organic_sum_revenue_placed_order`,\n klaviyo_persons.`total_sum_revenue_ordered_product` as `klaviyo_total_sum_revenue_ordered_product`,\n klaviyo_persons.`organic_sum_revenue_ordered_product` as `klaviyo_organic_sum_revenue_ordered_product`,\n klaviyo_persons.`total_sum_revenue_checkout_started` as `klaviyo_total_sum_revenue_checkout_started`,\n klaviyo_persons.`organic_sum_revenue_checkout_started` as `klaviyo_organic_sum_revenue_checkout_started`,\n klaviyo_persons.`total_sum_revenue_cancelled_order` as `klaviyo_total_sum_revenue_cancelled_order`,\n klaviyo_persons.`organic_sum_revenue_cancelled_order` as `klaviyo_organic_sum_revenue_cancelled_order`,\n klaviyo_persons.`total_count_active_on_site` as `klaviyo_total_count_active_on_site`,\n klaviyo_persons.`total_count_viewed_product` as `klaviyo_total_count_viewed_product`,\n klaviyo_persons.`total_count_ordered_product` as `klaviyo_total_count_ordered_product`,\n klaviyo_persons.`total_count_placed_order` as `klaviyo_total_count_placed_order`,\n klaviyo_persons.`total_count_refunded_order` as `klaviyo_total_count_refunded_order`,\n klaviyo_persons.`total_count_cancelled_order` as `klaviyo_total_count_cancelled_order`,\n klaviyo_persons.`total_count_fulfilled_order` as `klaviyo_total_count_fulfilled_order`,\n klaviyo_persons.`total_count_received_email` as `klaviyo_total_count_received_email`,\n klaviyo_persons.`total_count_clicked_email` as `klaviyo_total_count_clicked_email`,\n klaviyo_persons.`total_count_opened_email` as `klaviyo_total_count_opened_email`,\n klaviyo_persons.`total_count_bounced_email` as `klaviyo_total_count_bounced_email`,\n klaviyo_persons.`total_count_marked_email_as_spam` as `klaviyo_total_count_marked_email_as_spam`,\n klaviyo_persons.`total_count_dropped_email` as `klaviyo_total_count_dropped_email`,\n klaviyo_persons.`total_count_subscribed_to_list` as `klaviyo_total_count_subscribed_to_list`,\n klaviyo_persons.`total_count_unsubscribed_to_list` as `klaviyo_total_count_unsubscribed_to_list`,\n klaviyo_persons.`total_count_unsubscribed` as `klaviyo_total_count_unsubscribed`,\n klaviyo_persons.`total_count_updated_email_preferences` as `klaviyo_total_count_updated_email_preferences`,\n klaviyo_persons.`total_count_subscribed_to_back_in_stock` as `klaviyo_total_count_subscribed_to_back_in_stock`,\n klaviyo_persons.`total_count_merged_profile` as `klaviyo_total_count_merged_profile`,\n klaviyo_persons.`total_count_received_sms` as `klaviyo_total_count_received_sms`,\n klaviyo_persons.`total_count_clicked_sms` as `klaviyo_total_count_clicked_sms`,\n klaviyo_persons.`total_count_consented_to_receive_sms` as `klaviyo_total_count_consented_to_receive_sms`,\n klaviyo_persons.`total_count_sent_sms` as `klaviyo_total_count_sent_sms`,\n klaviyo_persons.`total_count_unsubscribed_from_sms` as `klaviyo_total_count_unsubscribed_from_sms`,\n klaviyo_persons.`total_count_failed_to_deliver_sms` as `klaviyo_total_count_failed_to_deliver_sms`,\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__customer_enhanced`"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"raw_sql": "{{\n config(\n materialized='incremental',\n unique_key='unique_order_key',\n partition_by={\n \"field\": \"created_timestamp\",\n \"data_type\": \"timestamp\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n -- just grab new + newly updated orders\n {% if is_incremental() %}\n where updated_timestamp >= (select max(updated_timestamp) from {{ this }})\n {% endif %}\n\n), events as (\n\n select \n *\n from {{ ref('klaviyo__events') }}\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n\n -- only grab the events for users who are in the new increment of orders\n {% if is_incremental() %}\n and lower(person_email) in (select distinct lower(email) from orders)\n {% endif %}\n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and {{ dbt_utils.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= (\n case when events.type like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n {{ dbt_utils.star(from=ref('shopify__orders'), except=['source_relation']) }},\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n {{ dbt_utils.surrogate_key(['order_id', 'source_relation']) }} as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.datediff", "macro.dbt_utils.star", "macro.dbt_utils.surrogate_key"], "nodes": ["model.shopify.shopify__orders", "model.klaviyo.klaviyo__events", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_order_key", "on_schema_change": "ignore", "grants": {}, "partition_by": {"field": "created_timestamp", "data_type": "timestamp"}, "incremental_strategy": "merge", "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__orders_attribution"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__orders_attribution.sql", "original_file_path": "models/shopify_holistic_reporting__orders_attribution.sql", "name": "shopify_holistic_reporting__orders_attribution", "alias": "shopify_holistic_reporting__orders_attribution", "checksum": {"name": "sha256", "checksum": "73fb2fe152a44cae675c50dde3179125d102ace0e7450e941072ce481be68efa"}, "tags": [], "refs": [["shopify__orders"], ["klaviyo__events"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Table of Shopify orders, enriched with a last-touch attribution model associating orders (as conversions) to campaigns or flows in Klaviyo. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with orders. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. \nSimilar to the Klaviyo app, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nRefer to the Klaviyo package [README](https://github.com/fivetran/dbt_klaviyo#attribution-lookback-window) for more details.\nMaterialized incrementally by default.\n", "columns": {"app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "The Klaviyo campaign that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "The Klaviyo flow that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed Klaviyo flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed Klaviyo flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of Klaviyo campaign that the order is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_id": {"name": "last_touch_event_id", "description": "Unique Klaviyo event id of the interaction the customer had with the campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_occurred_at": {"name": "last_touch_event_occurred_at", "description": "Timestamp of when the customer interacted with the attributed campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "Type of interaction that the customer had with the campaign or flow. Will be one of the event types specified by the `klaviyo__eligible_attribution_events` variable. By default, this is just email opens, email clicks, and sms opens.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_name": {"name": "last_touch_integration_name", "description": "Name of the platform that tracked the campaign/flow interaction (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_category": {"name": "last_touch_integration_category", "description": "Use-case category of the platform that sent the campaign/flow interaction event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where Klaviyo campaign/flow data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_campaign": {"name": "count_interactions_with_campaign", "description": "The count of distinct attributable events the customer had with the campaign throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_flow": {"name": "count_interactions_with_flow", "description": "The count of distinct attributable events the customer had with the flow throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__orders_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "shopify_holistic", "unique_key": "unique_order_key", "partition_by": {"field": "created_timestamp", "data_type": "timestamp"}, "incremental_strategy": "merge", "file_format": "delta"}, "created_at": 1665703195.65953, "compiled_sql": "\n\nwith orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__orders`\n\n -- just grab new + newly updated orders\n \n where updated_timestamp >= (select max(updated_timestamp) from `dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__orders_attribution`)\n \n\n), events as (\n\n select \n *\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n\n -- only grab the events for users who are in the new increment of orders\n \n and lower(person_email) in (select distinct lower(email) from orders)\n \n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and datetime_diff(\n cast(orders.created_timestamp as datetime),\n cast(events.occurred_at as datetime),\n hour\n ) <= (\n case when events.type like '%sms%' then 24\n else 120 end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n \n\n `order_id`,\n `processed_timestamp`,\n `updated_timestamp`,\n `user_id`,\n `total_discounts`,\n `total_line_items_price`,\n `total_price`,\n `total_tax`,\n `source_name`,\n `subtotal_price`,\n `has_taxes_included`,\n `total_weight`,\n `landing_site_base_url`,\n `location_id`,\n `name`,\n `note`,\n `number`,\n `order_number`,\n `cancel_reason`,\n `cancelled_timestamp`,\n `cart_token`,\n `checkout_token`,\n `closed_timestamp`,\n `created_timestamp`,\n `currency`,\n `customer_id`,\n `email`,\n `financial_status`,\n `fulfillment_status`,\n `processing_method`,\n `referring_site`,\n `billing_address_address_1`,\n `billing_address_address_2`,\n `billing_address_city`,\n `billing_address_company`,\n `billing_address_country`,\n `billing_address_country_code`,\n `billing_address_first_name`,\n `billing_address_last_name`,\n `billing_address_latitude`,\n `billing_address_longitude`,\n `billing_address_name`,\n `billing_address_phone`,\n `billing_address_province`,\n `billing_address_province_code`,\n `billing_address_zip`,\n `browser_ip`,\n `has_buyer_accepted_marketing`,\n `total_shipping_price_set`,\n `shipping_address_address_1`,\n `shipping_address_address_2`,\n `shipping_address_city`,\n `shipping_address_company`,\n `shipping_address_country`,\n `shipping_address_country_code`,\n `shipping_address_first_name`,\n `shipping_address_last_name`,\n `shipping_address_latitude`,\n `shipping_address_longitude`,\n `shipping_address_name`,\n `shipping_address_phone`,\n `shipping_address_province`,\n `shipping_address_province_code`,\n `shipping_address_zip`,\n `is_test_order`,\n `token`,\n `_fivetran_synced`,\n `shipping_cost`,\n `order_adjustment_amount`,\n `order_adjustment_tax_amount`,\n `refund_subtotal`,\n `refund_total_tax`,\n `order_adjusted_total`,\n `line_item_count`,\n `customer_order_seq_number`,\n `new_vs_repeat`,\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n to_hex(md5(cast(coalesce(cast(order_id as \n string\n), '') || '-' || coalesce(cast(source_relation as \n string\n), '') as \n string\n))) as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__orders_attribution`"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"raw_sql": "with shopify_daily as (\n\n select *\n from {{ ref('int__daily_shopify_customer_orders') }}\n\n), klaviyo_daily as (\n\n select *\n from {{ ref('int__daily_klaviyo_user_metrics') }}\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n {{ dbt_utils.star(from=ref('int__daily_shopify_customer_orders'), relation_alias='shopify_daily', prefix='shopify_',\n except=['source_relation','date_day', 'email', 'last_touch_variation_id', 'last_touch_flow_name', 'last_touch_campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'last_touch_campaign_subject_line', 'last_touch_campaign_type']) }},\n shopify_daily.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__daily_klaviyo_user_metrics'), relation_alias='klaviyo_daily', prefix='klaviyo_',\n except=['source_relation','date_day', 'email', 'variation_id', 'flow_name', 'campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'campaign_subject_line', 'campaign_type']) }},\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "table", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__daily_customer_metrics"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__daily_customer_metrics.sql", "original_file_path": "models/shopify_holistic_reporting__daily_customer_metrics.sql", "name": "shopify_holistic_reporting__daily_customer_metrics", "alias": "shopify_holistic_reporting__daily_customer_metrics", "checksum": {"name": "sha256", "checksum": "971dcdccf88ae613b19a18bff1ebb515f480d4fd5fb1c4ae1c8cfb3c0d07072d"}, "tags": [], "refs": [["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"], ["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"]], "sources": [], "metrics": [], "description": "Table that aggregates Shopify and Klaviyo metrics to the day-customer-campaign or day-customer-flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that non-attributed (to Klaviyo at least) orders and interactions (someone with null campaign_id/flow_id) are included in this table. \nFor **Klaviyo**: **Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\nNote that 0-activity days will not appear. \n", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_orders": {"name": "shopify_total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_price": {"name": "shopify_total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_line_items": {"name": "shopify_count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_line_items_price": {"name": "shopify_total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_discounts": {"name": "shopify_total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_tax": {"name": "shopify_total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_shipping_cost": {"name": "shopify_total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_subtotal": {"name": "shopify_total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_tax": {"name": "shopify_total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_cancelled_orders": {"name": "shopify_count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_products": {"name": "shopify_count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_product_variants": {"name": "shopify_count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_sum_quantity": {"name": "shopify_sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_amount": {"name": "shopify_total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_tax_amount": {"name": "shopify_total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__daily_customer_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1665703195.645756, "compiled_sql": "with shopify_daily as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`int__daily_shopify_customer_orders`\n\n), klaviyo_daily as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`int__daily_klaviyo_user_metrics`\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n \n\n shopify_daily.`total_orders` as `shopify_total_orders`,\n shopify_daily.`total_price` as `shopify_total_price`,\n shopify_daily.`count_line_items` as `shopify_count_line_items`,\n shopify_daily.`total_line_items_price` as `shopify_total_line_items_price`,\n shopify_daily.`total_discounts` as `shopify_total_discounts`,\n shopify_daily.`total_tax` as `shopify_total_tax`,\n shopify_daily.`total_shipping_cost` as `shopify_total_shipping_cost`,\n shopify_daily.`total_refund_subtotal` as `shopify_total_refund_subtotal`,\n shopify_daily.`total_refund_tax` as `shopify_total_refund_tax`,\n shopify_daily.`count_cancelled_orders` as `shopify_count_cancelled_orders`,\n shopify_daily.`count_products` as `shopify_count_products`,\n shopify_daily.`count_product_variants` as `shopify_count_product_variants`,\n shopify_daily.`sum_quantity` as `shopify_sum_quantity`,\n shopify_daily.`total_order_adjustment_amount` as `shopify_total_order_adjustment_amount`,\n shopify_daily.`total_order_adjustment_tax_amount` as `shopify_total_order_adjustment_tax_amount`,\n shopify_daily.source_relation as shopify_source_relation,\n\n \n\n klaviyo_daily.`first_event_at` as `klaviyo_first_event_at`,\n klaviyo_daily.`last_event_at` as `klaviyo_last_event_at`,\n klaviyo_daily.`sum_revenue_refunded_order` as `klaviyo_sum_revenue_refunded_order`,\n klaviyo_daily.`sum_revenue_placed_order` as `klaviyo_sum_revenue_placed_order`,\n klaviyo_daily.`sum_revenue_ordered_product` as `klaviyo_sum_revenue_ordered_product`,\n klaviyo_daily.`sum_revenue_checkout_started` as `klaviyo_sum_revenue_checkout_started`,\n klaviyo_daily.`sum_revenue_cancelled_order` as `klaviyo_sum_revenue_cancelled_order`,\n klaviyo_daily.`count_active_on_site` as `klaviyo_count_active_on_site`,\n klaviyo_daily.`count_viewed_product` as `klaviyo_count_viewed_product`,\n klaviyo_daily.`count_ordered_product` as `klaviyo_count_ordered_product`,\n klaviyo_daily.`count_placed_order` as `klaviyo_count_placed_order`,\n klaviyo_daily.`count_refunded_order` as `klaviyo_count_refunded_order`,\n klaviyo_daily.`count_received_email` as `klaviyo_count_received_email`,\n klaviyo_daily.`count_clicked_email` as `klaviyo_count_clicked_email`,\n klaviyo_daily.`count_opened_email` as `klaviyo_count_opened_email`,\n klaviyo_daily.`count_marked_email_as_spam` as `klaviyo_count_marked_email_as_spam`,\n klaviyo_daily.`count_unsubscribed` as `klaviyo_count_unsubscribed`,\n klaviyo_daily.`count_received_sms` as `klaviyo_count_received_sms`,\n klaviyo_daily.`count_clicked_sms` as `klaviyo_count_clicked_sms`,\n klaviyo_daily.`count_sent_sms` as `klaviyo_count_sent_sms`,\n klaviyo_daily.`count_unsubscribed_from_sms` as `klaviyo_count_unsubscribed_from_sms`,\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__daily_customer_metrics`"}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"raw_sql": "with orders as (\n\n select *\n from {{ ref('shopify_holistic_reporting__orders_attribution') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( {{ dbt_utils.date_trunc('day', 'created_timestamp') }} as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n {% endif %}\n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n {% if var('shopify__using_order_adjustment', true) %}\n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n {% endif %}\n \n\n from join_orders\n {{ dbt_utils.group_by(n=10)}}\n)\n\nselect *\nfrom daily_order_metrics", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_trunc", "macro.fivetran_utils.enabled_vars", "macro.dbt_utils.group_by"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_shopify_customer_orders"], "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_shopify_customer_orders.sql", "original_file_path": "models/intermediate/int__daily_shopify_customer_orders.sql", "name": "int__daily_shopify_customer_orders", "alias": "int__daily_shopify_customer_orders", "checksum": {"name": "sha256", "checksum": "d72f384b963f98264127d5e031e2e30ac3cafbc48bbf79494b80bd8367e1b0a2"}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"], ["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_orders": {"name": "total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_line_items": {"name": "count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_cost": {"name": "total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_subtotal": {"name": "total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_tax": {"name": "total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_cancelled_orders": {"name": "count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_products": {"name": "count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_product_variants": {"name": "count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sum_quantity": {"name": "sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_amount": {"name": "total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_tax_amount": {"name": "total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_shopify_customer_orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1665703195.675806, "compiled_sql": "with orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__orders_attribution`\n\n), order_lines as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__order_lines`\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( timestamp_trunc(\n cast(created_timestamp as timestamp),\n day\n ) as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n \n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n \n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n \n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n \n \n\n from join_orders\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\nselect *\nfrom daily_order_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`int__daily_shopify_customer_orders`"}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"raw_sql": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from {{ ref('shopify__customers') }}\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"cast(customer_id as \" ~ dbt_utils.type_string() ~ \")\", \"', '\") }} as customer_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone as \" ~ dbt_utils.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n {{ fivetran_utils.max_bool(\"has_accepted_marketing\") }} as has_accepted_marketing,\n {{ fivetran_utils.max_bool(\"case when customer_index = 1 then is_tax_exempt else null end\") }} as is_tax_exempt, -- since this changes every year\n {{ fivetran_utils.max_bool(\"is_verified_email\") }} as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n {% set cols = adapter.get_columns_in_relation(ref('shopify__customers')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'customer_id', 'phone', 'first_name', 'last_name', 'created_timestamp', 'first_order_timestamp', 'most_recent_order_timestamp',\n 'updated_timestamp', 'lifetime_total_spent', 'lifetime_total_refunded', 'lifetime_total_amount', 'lifetime_count_orders', 'average_order_value', 'has_accepted_marketing',\n 'is_tax_exempt', 'is_verified_email', 'default_address_id', 'account_state'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when customer_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.type_string", "macro.fivetran_utils.string_agg", "macro.fivetran_utils.max_bool"], "nodes": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__shopify_customer_rollup"], "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__shopify_customer_rollup.sql", "original_file_path": "models/intermediate/int__shopify_customer_rollup.sql", "name": "int__shopify_customer_rollup", "alias": "int__shopify_customer_rollup", "checksum": {"name": "sha256", "checksum": "4ee4ea4a1e004aa732004a879fff8a885afe00f56e679b43ae87032740905bff"}, "tags": [], "refs": [["shopify__customers"], ["shopify__customers"]], "sources": [], "metrics": [], "description": "Table rolling up shopify customer accounts to the email level. In theory, these should be 1:1, but under certain circumstances (ie bots) one email can be associated with multiple customer_ids.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_shopify_account_made_at": {"name": "first_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_shopify_account_made_at": {"name": "last_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_ids": {"name": "customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_at": {"name": "first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_order_at": {"name": "last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__shopify_customer_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1665703195.678601, "compiled_sql": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__customers`\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n \n string_agg(cast(customer_id as \n string\n), ', ')\n\n as customer_ids,\n \n string_agg(distinct cast(phone as \n string\n), ', ')\n\n as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n \n\n max( has_accepted_marketing )\n\n as has_accepted_marketing,\n \n\n max( case when customer_index = 1 then is_tax_exempt else null end )\n\n as is_tax_exempt, -- since this changes every year\n \n\n max( is_verified_email )\n\n as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`int__shopify_customer_rollup`"}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"raw_sql": "with events as (\n\n select *\n from {{ ref('klaviyo__events') }}\n\n), pivot_out_events as (\n \n select \n cast( {{ dbt_utils.date_trunc('day', 'occurred_at') }} as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=10) }}\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_trunc", "macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_klaviyo_user_metrics"], "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_klaviyo_user_metrics.sql", "original_file_path": "models/intermediate/int__daily_klaviyo_user_metrics.sql", "name": "int__daily_klaviyo_user_metrics", "alias": "int__daily_klaviyo_user_metrics", "checksum": {"name": "sha256", "checksum": "9074aea6aba5dc661a9c2bf48cfddff3d94f7729b5ce0fd29316de663883d7b8"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_klaviyo_user_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1665703195.6721249, "compiled_sql": "with events as (\n\n select *\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\n\n), pivot_out_events as (\n \n select \n cast( timestamp_trunc(\n cast(occurred_at as timestamp),\n day\n ) as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n \n safe_cast(numeric_value as numeric)\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`int__daily_klaviyo_user_metrics`"}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"raw_sql": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from {{ ref('klaviyo__persons') }}\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"person_id\", \"', '\") }} as person_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone_number as \" ~ dbt_utils.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n {% set cols = adapter.get_columns_in_relation(ref('klaviyo__persons')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'person_id', 'phone_number', 'full_name', 'created_at', 'updated_at', 'count_total_campaigns', 'count_total_flows',\n 'first_event_at', 'last_event_at', 'first_campaign_touch_at', 'last_campaign_touch_at', 'first_flow_touch_at', 'last_flow_touch_at'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when person_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.dbt_utils.type_string"], "nodes": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "view", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__klaviyo_person_rollup"], "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__klaviyo_person_rollup.sql", "original_file_path": "models/intermediate/int__klaviyo_person_rollup.sql", "name": "int__klaviyo_person_rollup", "alias": "int__klaviyo_person_rollup", "checksum": {"name": "sha256", "checksum": "45decc1969fef4f4fe0fb7ec2b4531a4a57a160d1610e2fa5f8029173b50414a"}, "tags": [], "refs": [["klaviyo__persons"], ["klaviyo__persons"]], "sources": [], "metrics": [], "description": "Table rolling up Klaviyo person accounts to the email level. In theory, these should certainly be 1:1, but under certain circumstances emails can be sent with multiple person_ids from the Klaviyo API.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_ids": {"name": "person_ids", "description": "A comma-separated aggregated list of Klaviyo IDs for the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers for this person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_klaviyo_account_made_at": {"name": "first_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_klaviyo_account_made_at": {"name": "last_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was last created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__klaviyo_person_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1665703195.682824, "compiled_sql": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n \n string_agg(person_id, ', ')\n\n as person_ids,\n \n string_agg(distinct cast(phone_number as \n string\n), ', ')\n\n as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n \n \n \n \n \n \n , max(case when person_index = 1 then address_1 else null end) as address_1\n \n \n \n , max(case when person_index = 1 then address_2 else null end) as address_2\n \n \n \n , max(case when person_index = 1 then city else null end) as city\n \n \n \n , max(case when person_index = 1 then country else null end) as country\n \n \n \n , max(case when person_index = 1 then zip else null end) as zip\n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then latitude else null end) as latitude\n \n \n \n , max(case when person_index = 1 then longitude else null end) as longitude\n \n \n \n , max(case when person_index = 1 then organization else null end) as organization\n \n \n \n \n \n , max(case when person_index = 1 then region else null end) as region\n \n \n \n , max(case when person_index = 1 then timezone else null end) as timezone\n \n \n \n , max(case when person_index = 1 then title else null end) as title\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then total_sum_revenue_refunded_order else null end) as total_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_refunded_order else null end) as organic_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_placed_order else null end) as total_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_placed_order else null end) as organic_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_ordered_product else null end) as total_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_ordered_product else null end) as organic_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_checkout_started else null end) as total_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_checkout_started else null end) as organic_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_cancelled_order else null end) as total_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_cancelled_order else null end) as organic_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_active_on_site else null end) as total_count_active_on_site\n \n \n \n , max(case when person_index = 1 then total_count_viewed_product else null end) as total_count_viewed_product\n \n \n \n , max(case when person_index = 1 then total_count_ordered_product else null end) as total_count_ordered_product\n \n \n \n , max(case when person_index = 1 then total_count_placed_order else null end) as total_count_placed_order\n \n \n \n , max(case when person_index = 1 then total_count_refunded_order else null end) as total_count_refunded_order\n \n \n \n , max(case when person_index = 1 then total_count_cancelled_order else null end) as total_count_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_fulfilled_order else null end) as total_count_fulfilled_order\n \n \n \n , max(case when person_index = 1 then total_count_received_email else null end) as total_count_received_email\n \n \n \n , max(case when person_index = 1 then total_count_clicked_email else null end) as total_count_clicked_email\n \n \n \n , max(case when person_index = 1 then total_count_opened_email else null end) as total_count_opened_email\n \n \n \n , max(case when person_index = 1 then total_count_bounced_email else null end) as total_count_bounced_email\n \n \n \n , max(case when person_index = 1 then total_count_marked_email_as_spam else null end) as total_count_marked_email_as_spam\n \n \n \n , max(case when person_index = 1 then total_count_dropped_email else null end) as total_count_dropped_email\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_list else null end) as total_count_subscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_to_list else null end) as total_count_unsubscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed else null end) as total_count_unsubscribed\n \n \n \n , max(case when person_index = 1 then total_count_updated_email_preferences else null end) as total_count_updated_email_preferences\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_back_in_stock else null end) as total_count_subscribed_to_back_in_stock\n \n \n \n , max(case when person_index = 1 then total_count_merged_profile else null end) as total_count_merged_profile\n \n \n \n , max(case when person_index = 1 then total_count_received_sms else null end) as total_count_received_sms\n \n \n \n , max(case when person_index = 1 then total_count_clicked_sms else null end) as total_count_clicked_sms\n \n \n \n , max(case when person_index = 1 then total_count_consented_to_receive_sms else null end) as total_count_consented_to_receive_sms\n \n \n \n , max(case when person_index = 1 then total_count_sent_sms else null end) as total_count_sent_sms\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_from_sms else null end) as total_count_unsubscribed_from_sms\n \n \n \n , max(case when person_index = 1 then total_count_failed_to_deliver_sms else null end) as total_count_failed_to_deliver_sms\n \n \n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "`dbt-package-testing`.`dbt_test_shopify_holistic`.`int__klaviyo_person_rollup`"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__customer')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__customer"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__customer"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be"}, "created_at": 1665703195.348107, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__customer`\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__customer"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line_refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3"}, "created_at": 1665703195.3556721, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_refund_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line_refund`\n group by order_line_refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line_refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec"}, "created_at": 1665703195.3583438, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e"}, "created_at": 1665703195.3608892, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d"}, "created_at": 1665703195.3634229, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product`\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variant_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product_variant')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product_variant"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation", "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product_variant"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e"}, "created_at": 1665703195.3659542, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variant_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__product_variant`\n group by variant_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product_variant"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__transaction')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92"}, "created_at": 1665703195.3683681, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__transaction`\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__transaction"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659"}, "created_at": 1665703195.370878, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n refund_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__refund`\n group by refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_adjustment_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_adjustment')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation", "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_adjustment"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207"}, "created_at": 1665703195.3733902, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_adjustment_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_adjustment`\n group by order_adjustment_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_adjustment"}, "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__campaign_campaign_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__campaign_campaign_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__campaign_campaign_id", "alias": "not_null_stg_klaviyo__campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__campaign_campaign_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.463882, "compiled_sql": "\n \n \n\n\n\nselect campaign_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign`\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_id", "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation", "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26"}, "created_at": 1665703195.465271, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__campaign`\n group by campaign_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__event_event_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__event_event_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__event_event_id", "alias": "not_null_stg_klaviyo__event_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__event_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.468443, "compiled_sql": "\n \n \n\n\n\nselect event_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event`\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa"}, "created_at": 1665703195.4696488, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__event`\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__flow_flow_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__flow_flow_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__flow_flow_id", "alias": "not_null_stg_klaviyo__flow_flow_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__flow_flow_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.4723608, "compiled_sql": "\n \n \n\n\n\nselect flow_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow`\nwhere flow_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_id", "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation", "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270"}, "created_at": 1665703195.4733078, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__flow`\n group by flow_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "integration_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__integration_integration_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__integration_integration_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__integration_integration_id", "alias": "not_null_stg_klaviyo__integration_integration_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__integration_integration_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.475887, "compiled_sql": "\n \n \n\n\n\nselect integration_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration`\nwhere integration_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "integration_id", "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["integration_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation", "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596"}, "created_at": 1665703195.4768388, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n integration_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__integration`\n group by integration_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_person_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_person_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_person_id", "alias": "not_null_stg_klaviyo__person_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.479994, "compiled_sql": "\n \n \n\n\n\nselect person_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": {"raw_sql": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "unique_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "unique_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "unique_stg_klaviyo__person_email", "alias": "unique_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/unique_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1665703195.4824052, "compiled_sql": "\n \n \n\nwith dbt_test__target as (\n\n select email as unique_field\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\n where email 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\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_email", "alias": "not_null_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.4841459, "compiled_sql": "\n \n \n\n\n\nselect email\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161"}, "created_at": 1665703195.485605, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__person`\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "metric_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__metric_metric_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__metric_metric_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__metric_metric_id", "alias": "not_null_stg_klaviyo__metric_metric_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__metric_metric_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.4892, "compiled_sql": "\n \n \n\n\n\nselect metric_id\nfrom `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric`\nwhere metric_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "metric_id", "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["metric_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation", "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58"}, "created_at": 1665703195.490368, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n metric_id, source_relation\n from `dbt-package-testing`.`dbt_test_stg_klaviyo`.`stg_klaviyo__metric`\n group by metric_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__events_event_id"], "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__events_event_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__events_event_id", "alias": "not_null_klaviyo__events_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__events_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.525354, "compiled_sql": "\n \n \n\n\n\nselect event_id\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.klaviyo__events"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98"}, "created_at": 1665703195.5266309, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__events`\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__events"}, "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__person_campaign_flow_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__person_campaign_flow_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__person_campaign_flow_person_id", "alias": "not_null_klaviyo__person_campaign_flow_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__person_campaign_flow_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.5296068, "compiled_sql": "\n \n \n\n\n\nselect person_id\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__person_campaign_flow`\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "last_touch_campaign_id", "last_touch_flow_id", "variation_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation", "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd"}, "created_at": 1665703195.5306208, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__person_campaign_flow`\n group by person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__campaigns_campaign_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__campaigns_campaign_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__campaigns_campaign_variation_key", "alias": "not_null_klaviyo__campaigns_campaign_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__campaigns_campaign_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.533937, "compiled_sql": "\n \n \n\n\n\nselect campaign_variation_key\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__campaigns`\nwhere campaign_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_variation_key", "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64"}, "created_at": 1665703195.535132, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_variation_key, source_relation\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__campaigns`\n group by campaign_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__flows_flow_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__flows_flow_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__flows_flow_variation_key", "alias": "not_null_klaviyo__flows_flow_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__flows_flow_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.5379379, "compiled_sql": "\n \n \n\n\n\nselect flow_variation_key\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__flows`\nwhere flow_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_variation_key", "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e"}, "created_at": 1665703195.539296, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_variation_key, source_relation\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__flows`\n group by flow_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_person_id", "alias": "not_null_klaviyo__persons_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.542968, "compiled_sql": "\n \n \n\n\n\nselect person_id\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": {"raw_sql": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "unique_klaviyo__persons_email"], "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "unique_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "unique_klaviyo__persons_email", "alias": "unique_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/unique_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1665703195.544244, "compiled_sql": "\n \n \n\nwith dbt_test__target as (\n\n select email as unique_field\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`\n where email 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\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_email"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_email", "alias": "not_null_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.545207, "compiled_sql": "\n \n \n\n\n\nselect email\nfrom `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329"}, "created_at": 1665703195.546377, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from `dbt-package-testing`.`dbt_test_klaviyo`.`klaviyo__persons`\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__event_attribution_event_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__event_attribution_event_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__event_attribution_event_id", "alias": "not_null_int_klaviyo__event_attribution_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__event_attribution_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.557622, "compiled_sql": "\n \n \n\n\n\nselect event_id\nfrom `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__event_attribution`\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10"}, "created_at": 1665703195.5589252, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__event_attribution`\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variation_id", "source_relation", "last_touch_campaign_id", "last_touch_flow_id"], "model": "{{ get_where_subquery(ref('int_klaviyo__campaign_flow_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id", "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61"}, "created_at": 1665703195.561899, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__campaign_flow_metrics`\n group by variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__campaign_flow_metrics"}, "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__person_metrics_person_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__person_metrics_person_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__person_metrics_person_id", "alias": "not_null_int_klaviyo__person_metrics_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__person_metrics_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.565355, "compiled_sql": "\n \n \n\n\n\nselect person_id\nfrom `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__person_metrics`\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.int_klaviyo__person_metrics"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "package_name": "klaviyo", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c"}, "created_at": 1665703195.5665112, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from `dbt-package-testing`.`dbt_test_int_klaviyo`.`int_klaviyo__person_metrics`\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__person_metrics"}, "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": {"raw_sql": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "unique_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "unique_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "unique_shopify__customer_cohorts_customer_cohort_id", "alias": "unique_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/unique_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.606169, "compiled_sql": "\n \n \n\nwith dbt_test__target as (\n\n select customer_cohort_id as unique_field\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__customer_cohorts`\n where customer_cohort_id 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\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": {"raw_sql": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "not_null_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "not_null_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "not_null_shopify__customer_cohorts_customer_cohort_id", "alias": "not_null_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/not_null_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1665703195.607311, "compiled_sql": "\n \n \n\n\n\nselect customer_cohort_id\nfrom `dbt-package-testing`.`dbt_test_shopify`.`shopify__customer_cohorts`\nwhere customer_cohort_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce"}, "created_at": 1665703195.60868, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__orders`\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696"}, "created_at": 1665703195.612108, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__customers`\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__products')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__products"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__products"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa"}, "created_at": 1665703195.615246, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__products`\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__products"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__order_lines')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40"}, "created_at": 1665703195.6192682, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__order_lines`\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__order_lines"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__transactions')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb"}, "created_at": 1665703195.622826, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__transactions"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers__order_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3"}, "created_at": 1665703195.6264, "compiled_sql": "\n\n\n\n\n\nwith __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), transactions as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n customer_id, source_relation\n from __dbt__cte__shopify__customers__order_aggregates\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order`\n\n), transactions as (\n\n select *\n from `dbt-package-testing`.`dbt_test_shopify`.`shopify__transactions`\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers__order_aggregates"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders__order_line_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders__order_line_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473", "package_name": "shopify", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders__order_line_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04"}, "created_at": 1665703195.629317, "compiled_sql": "\n\n\n\n\n\nwith __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n order_id, source_relation\n from __dbt__cte__shopify__orders__order_line_aggregates\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from `dbt-package-testing`.`dbt_test_stg_shopify`.`stg_shopify__order_line`\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders__order_line_aggregates"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["email", "klaviyo_source_relation", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__customer_enhanced')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__customer_enhanced"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc"}, "created_at": 1665703195.6601799, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n email, klaviyo_source_relation, shopify_source_relation\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__customer_enhanced`\n group by email, klaviyo_source_relation, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__customer_enhanced"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "email", "klaviyo_source_relation", "shopify_source_relation", "campaign_id", "flow_id", "variation_id"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__daily_customer_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id", "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__daily_customer_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f"}, "created_at": 1665703195.6637282, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__daily_customer_metrics`\n group by date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__daily_customer_metrics"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": {"raw_sql": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a\") }}", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__orders_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "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"}, "database": "dbt-package-testing", "schema": "dbt_test_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb", "package_name": "shopify_holistic_reporting", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a"}, "created_at": 1665703195.6671948, "compiled_sql": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, shopify_source_relation\n from `dbt-package-testing`.`dbt_test_shopify_holistic`.`shopify_holistic_reporting__orders_attribution`\n group by order_id, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__orders_attribution"}}, "sources": {"source.shopify_source.shopify.order": {"fqn": ["shopify_source", "shopify", "order"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": true, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "buyer_accepts_marketing": {"name": "buyer_accepts_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_at": {"name": "cancelled_at", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_at": {"name": "closed_at", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxes_included": {"name": "taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`order`", "created_at": 1665703195.6831942}, "source.shopify_source.shopify.customer": {"fqn": ["shopify_source", "shopify", "customer"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.customer", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "customer", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "customer", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "accepts_marketing": {"name": "accepts_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "state": {"name": "state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_exempt": {"name": "tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "verified_email": {"name": "verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`customer`", "created_at": 1665703195.6833532}, "source.shopify_source.shopify.order_line": {"fqn": ["shopify_source", "shopify", "order_line"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item for an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gift_card": {"name": "gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`order_line`", "created_at": 1665703195.6834471}, "source.shopify_source.shopify.order_line_refund": {"fqn": ["shopify_source", "shopify", "order_line_refund"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line_refund", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line_refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line_refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item refund in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`order_line_refund`", "created_at": 1665703195.68352}, "source.shopify_source.shopify.product": {"fqn": ["shopify_source", "shopify", "product"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_at": {"name": "published_at", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`product`", "created_at": 1665703195.683593}, "source.shopify_source.shopify.product_variant": {"fqn": ["shopify_source", "shopify", "product_variant"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product_variant", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product_variant", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product_variant", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`product_variant`", "created_at": 1665703195.683691}, "source.shopify_source.shopify.transaction": {"fqn": ["shopify_source", "shopify", "transaction"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.transaction", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "transaction", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "transaction", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`transaction`", "created_at": 1665703195.683786}, "source.shopify_source.shopify.refund": {"fqn": ["shopify_source", "shopify", "refund"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.refund", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a refund within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`refund`", "created_at": 1665703195.6838531}, "source.shopify_source.shopify.order_adjustment": {"fqn": ["shopify_source", "shopify", "order_adjustment"], "database": "dbt-package-testing", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_adjustment", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_adjustment", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_adjustment", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`shopify`.`order_adjustment`", "created_at": 1665703195.68392}, "source.klaviyo_source.klaviyo.campaign": {"fqn": ["klaviyo_source", "klaviyo", "campaign"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.campaign", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "campaign", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "campaign", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table capturing email campaigns in Klaviyo. \n", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "send_time": {"name": "send_time", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_label": {"name": "status_label", "description": "The label of the status as it appears in the UI (should be the same as `status`).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`campaign`", "created_at": 1665703195.684056}, "source.klaviyo_source.klaviyo.event": {"fqn": ["klaviyo_source", "klaviyo", "event"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.event", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "event", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "event", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"_variation": {"name": "_variation", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "datetime": {"name": "datetime", "description": "Timestamp of when the event was recorded in Klaviyo. Should be the same/nominally off from `timestamp`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timestamp": {"name": "timestamp", "description": "Timestamp of when the event was triggered. Should be the same/nominally off from `datetime`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "property_value": {"name": "property_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`event`", "created_at": 1665703195.684135}, "source.klaviyo_source.klaviyo.flow": {"fqn": ["klaviyo_source", "klaviyo", "flow"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.flow", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "flow", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "flow", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "trigger": {"name": "trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_filter": {"name": "customer_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`flow`", "created_at": 1665703195.684204}, "source.klaviyo_source.klaviyo.integration": {"fqn": ["klaviyo_source", "klaviyo", "integration"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.integration", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "integration", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "integration", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`integration`", "created_at": 1665703195.684267}, "source.klaviyo_source.klaviyo.person": {"fqn": ["klaviyo_source", "klaviyo", "person"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.person", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "person", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "person", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"id": {"name": "id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "Person's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "Person's surname.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`person`", "created_at": 1665703195.6843479}, "source.klaviyo_source.klaviyo.metric": {"fqn": ["klaviyo_source", "klaviyo", "metric"], "database": "dbt-package-testing", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.metric", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "metric", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "metric", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "`dbt-package-testing`.`klaviyo`.`metric`", "created_at": 1665703195.684414}}, "macros": {"macro.dbt_bigquery.date_sharded_table": {"unique_id": "macro.dbt_bigquery.date_sharded_table", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "name": "date_sharded_table", "macro_sql": "{% macro date_sharded_table(base_name) %}\n {{ return(base_name ~ \"[DBT__PARTITION_DATE]\") }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1827369}, "macro.dbt_bigquery.grant_access_to": {"unique_id": "macro.dbt_bigquery.grant_access_to", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.182975}, "macro.dbt_bigquery.get_partitions_metadata": {"unique_id": "macro.dbt_bigquery.get_partitions_metadata", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/etc.sql", "original_file_path": "macros/etc.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.183273}, "macro.dbt_bigquery.bigquery__get_catalog": {"unique_id": "macro.dbt_bigquery.bigquery__get_catalog", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "name": "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 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\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 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.18668}, "macro.dbt_bigquery.partition_by": {"unique_id": "macro.dbt_bigquery.partition_by", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1918871}, "macro.dbt_bigquery.cluster_by": {"unique_id": "macro.dbt_bigquery.cluster_by", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1922581}, "macro.dbt_bigquery.bigquery_options": {"unique_id": "macro.dbt_bigquery.bigquery_options", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.192609}, "macro.dbt_bigquery.bigquery_table_options": {"unique_id": "macro.dbt_bigquery.bigquery_table_options", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_options"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.192864}, "macro.dbt_bigquery.bigquery__create_table_as": {"unique_id": "macro.dbt_bigquery.bigquery__create_table_as", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__create_table_as", "macro_sql": "{% macro bigquery__create_table_as(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 {{ 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 {{ sql }}\n );\n\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.partition_by", "macro.dbt_bigquery.cluster_by", "macro.dbt_bigquery.bigquery_table_options"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.193482}, "macro.dbt_bigquery.bigquery_view_options": {"unique_id": "macro.dbt_bigquery.bigquery_view_options", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_options"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.193713}, "macro.dbt_bigquery.bigquery__create_view_as": {"unique_id": "macro.dbt_bigquery.bigquery__create_view_as", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery_view_options"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1940212}, "macro.dbt_bigquery.bigquery__create_schema": {"unique_id": "macro.dbt_bigquery.bigquery__create_schema", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__create_schema", "macro_sql": "{% macro bigquery__create_schema(relation) -%}\n {{ adapter.create_schema(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194147}, "macro.dbt_bigquery.bigquery__drop_schema": {"unique_id": "macro.dbt_bigquery.bigquery__drop_schema", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__drop_schema", "macro_sql": "{% macro bigquery__drop_schema(relation) -%}\n {{ adapter.drop_schema(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194269}, "macro.dbt_bigquery.bigquery__drop_relation": {"unique_id": "macro.dbt_bigquery.bigquery__drop_relation", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194465}, "macro.dbt_bigquery.bigquery__get_columns_in_relation": {"unique_id": "macro.dbt_bigquery.bigquery__get_columns_in_relation", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__get_columns_in_relation", "macro_sql": "{% macro bigquery__get_columns_in_relation(relation) -%}\n {{ return(adapter.get_columns_in_relation(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194609}, "macro.dbt_bigquery.bigquery__list_relations_without_caching": {"unique_id": "macro.dbt_bigquery.bigquery__list_relations_without_caching", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194747}, "macro.dbt_bigquery.bigquery__current_timestamp": {"unique_id": "macro.dbt_bigquery.bigquery__current_timestamp", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__current_timestamp", "macro_sql": "{% macro bigquery__current_timestamp() -%}\n CURRENT_TIMESTAMP()\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.194825}, "macro.dbt_bigquery.bigquery__snapshot_string_as_time": {"unique_id": "macro.dbt_bigquery.bigquery__snapshot_string_as_time", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__snapshot_string_as_time", "macro_sql": "{% macro bigquery__snapshot_string_as_time(timestamp) -%}\n {%- set result = 'TIMESTAMP(\"' ~ timestamp ~ '\")' -%}\n {{ return(result) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.195012}, "macro.dbt_bigquery.bigquery__list_schemas": {"unique_id": "macro.dbt_bigquery.bigquery__list_schemas", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__list_schemas", "macro_sql": "{% macro bigquery__list_schemas(database) -%}\n {{ return(adapter.list_schemas(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1952481}, "macro.dbt_bigquery.bigquery__check_schema_exists": {"unique_id": "macro.dbt_bigquery.bigquery__check_schema_exists", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.195425}, "macro.dbt_bigquery.bigquery__persist_docs": {"unique_id": "macro.dbt_bigquery.bigquery__persist_docs", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.195704}, "macro.dbt_bigquery.bigquery__alter_column_comment": {"unique_id": "macro.dbt_bigquery.bigquery__alter_column_comment", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__alter_column_comment", "macro_sql": "{% macro bigquery__alter_column_comment(relation, column_dict) -%}\n {% do adapter.update_columns(relation, column_dict) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.195859}, "macro.dbt_bigquery.bigquery__rename_relation": {"unique_id": "macro.dbt_bigquery.bigquery__rename_relation", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "bigquery__rename_relation", "macro_sql": "{% macro bigquery__rename_relation(from_relation, to_relation) -%}\n {% do adapter.rename_relation(from_relation, to_relation) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.196009}, "macro.dbt_bigquery.bigquery__alter_relation_add_columns": {"unique_id": "macro.dbt_bigquery.bigquery__alter_relation_add_columns", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.196397}, "macro.dbt_bigquery.bigquery__alter_relation_drop_columns": {"unique_id": "macro.dbt_bigquery.bigquery__alter_relation_drop_columns", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.196766}, "macro.dbt_bigquery.bigquery__alter_column_type": {"unique_id": "macro.dbt_bigquery.bigquery__alter_column_type", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_columns_in_relation", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.197412}, "macro.dbt_bigquery.bigquery__test_unique": {"unique_id": "macro.dbt_bigquery.bigquery__test_unique", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.197574}, "macro.dbt_bigquery.bigquery__upload_file": {"unique_id": "macro.dbt_bigquery.bigquery__upload_file", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.197848}, "macro.dbt_bigquery.bigquery__create_csv_table": {"unique_id": "macro.dbt_bigquery.bigquery__create_csv_table", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "name": "bigquery__create_csv_table", "macro_sql": "{% macro bigquery__create_csv_table(model, agate_table) %}\n -- no-op\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1982179}, "macro.dbt_bigquery.bigquery__reset_csv_table": {"unique_id": "macro.dbt_bigquery.bigquery__reset_csv_table", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.19837}, "macro.dbt_bigquery.bigquery__load_csv_rows": {"unique_id": "macro.dbt_bigquery.bigquery__load_csv_rows", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/seed.sql", "original_file_path": "macros/materializations/seed.sql", "name": "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 {% 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.198967}, "macro.dbt_bigquery.bigquery__handle_existing_table": {"unique_id": "macro.dbt_bigquery.bigquery__handle_existing_table", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/view.sql", "original_file_path": "macros/materializations/view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.1995578}, "macro.dbt_bigquery.materialization_view_bigquery": {"unique_id": "macro.dbt_bigquery.materialization_view_bigquery", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/view.sql", "original_file_path": "macros/materializations/view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_or_replace_view", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.200207}, "macro.dbt_bigquery.materialization_table_bigquery": {"unique_id": "macro.dbt_bigquery.materialization_table_bigquery", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/table.sql", "original_file_path": "macros/materializations/table.sql", "name": "materialization_table_bigquery", "macro_sql": "{% materialization table, adapter='bigquery' -%}\n\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 {% call statement('main') -%}\n {{ create_table_as(False, target_relation, sql) }}\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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.202324}, "macro.dbt_bigquery.materialization_copy_bigquery": {"unique_id": "macro.dbt_bigquery.materialization_copy_bigquery", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/copy.sql", "original_file_path": "macros/materializations/copy.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.203553}, "macro.dbt_bigquery.declare_dbt_max_partition": {"unique_id": "macro.dbt_bigquery.declare_dbt_max_partition", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "name": "declare_dbt_max_partition", "macro_sql": "{% macro declare_dbt_max_partition(relation, partition_by, sql) %}\n\n {% if '_dbt_max_partition' in sql %}\n\n declare _dbt_max_partition {{ partition_by.data_type }} default (\n select max({{ partition_by.field }}) from {{ this }}\n where {{ partition_by.field }} is not null\n );\n\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2054179}, "macro.dbt_bigquery.dbt_bigquery_validate_get_incremental_strategy": {"unique_id": "macro.dbt_bigquery.dbt_bigquery_validate_get_incremental_strategy", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "name": "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\", default=\"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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.205856}, "macro.dbt_bigquery.bq_insert_overwrite": {"unique_id": "macro.dbt_bigquery.bq_insert_overwrite", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "name": "bq_insert_overwrite", "macro_sql": "{% macro bq_insert_overwrite(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists\n) %}\n\n {% if partitions is not none and partitions != [] %} {# static #}\n\n {% set predicate -%}\n {{ partition_by.render(alias='DBT_INTERNAL_DEST') }} in (\n {{ partitions | join (', ') }}\n )\n {%- endset %}\n\n {%- set source_sql -%}\n (\n {{sql}}\n )\n {%- endset -%}\n\n {{ get_insert_overwrite_merge_sql(target_relation, source_sql, dest_columns, [predicate], include_sql_header=true) }}\n\n {% else %} {# dynamic #}\n\n {% set predicate -%}\n {{ partition_by.render(alias='DBT_INTERNAL_DEST') }} in unnest(dbt_partitions_for_replacement)\n {%- endset %}\n\n {%- set source_sql -%}\n (\n select * 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 }}>;\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\n {{ create_table_as(True, tmp_relation, 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() }})\n from {{ tmp_relation }}\n );\n\n {#\n TODO: include_sql_header is a hack; consider a better approach that includes\n the sql_header at the materialization-level instead\n #}\n -- 3. run the merge statement\n {{ get_insert_overwrite_merge_sql(target_relation, source_sql, dest_columns, [predicate], include_sql_header=false) }};\n\n -- 4. clean up the temp table\n drop table if exists {{ tmp_relation }}\n\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql", "macro.dbt_bigquery.declare_dbt_max_partition", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.207083}, "macro.dbt_bigquery.bq_generate_incremental_build_sql": {"unique_id": "macro.dbt_bigquery.bq_generate_incremental_build_sql", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "name": "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\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 missing_partition_msg -%}\n The 'insert_overwrite' strategy requires the `partition_by` config.\n {%- endset %}\n {% if partition_by is none %}\n {% do exceptions.raise_compiler_error(missing_partition_msg) %}\n {% endif %}\n\n {% set build_sql = bq_insert_overwrite(\n tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists\n ) %}\n\n {% else %} {# strategy == 'merge' #}\n {%- set source_sql -%}\n {%- if tmp_relation_exists -%}\n (\n select * from {{ tmp_relation }}\n )\n {%- else -%} {#-- wrap sql in parens to make it a subquery --#}\n (\n {{sql}}\n )\n {%- endif -%}\n {%- endset -%}\n\n {% set build_sql = get_merge_sql(target_relation, source_sql, unique_key, dest_columns) %}\n\n {% endif %}\n\n {{ return(build_sql) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bq_insert_overwrite", "macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2079282}, "macro.dbt_bigquery.materialization_incremental_bigquery": {"unique_id": "macro.dbt_bigquery.materialization_incremental_bigquery", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/incremental.sql", "original_file_path": "macros/materializations/incremental.sql", "name": "materialization_incremental_bigquery", "macro_sql": "{% materialization incremental, adapter='bigquery' -%}\n\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\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\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 {% if existing_relation is none %}\n {% set build_sql = create_table_as(False, target_relation, sql) %}\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 {% set build_sql = create_table_as(False, target_relation, sql) %}\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 {% set build_sql = create_table_as(False, target_relation, sql) %}\n\n {% else %}\n {% set tmp_relation_exists = false %}\n {% if on_schema_change != 'ignore' %} {# Check first, since otherwise we may not build a temp table #}\n {% do run_query(\n declare_dbt_max_partition(this, partition_by, sql) + create_table_as(True, tmp_relation, sql)\n ) %}\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 {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n {% set build_sql = bq_generate_incremental_build_sql(\n strategy, tmp_relation, target_relation, sql, unique_key, partition_by, partitions, dest_columns, tmp_relation_exists\n ) %}\n\n {% endif %}\n\n {%- call statement('main') -%}\n {{ build_sql }}\n {% endcall %}\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 %}", "resource_type": "macro", "tags": [], "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.create_table_as", "macro.dbt.run_query", "macro.dbt_bigquery.declare_dbt_max_partition", "macro.dbt.process_schema_changes", "macro.dbt_bigquery.bq_generate_incremental_build_sql", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2107031}, "macro.dbt_bigquery.bigquery__snapshot_hash_arguments": {"unique_id": "macro.dbt_bigquery.bigquery__snapshot_hash_arguments", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.211148}, "macro.dbt_bigquery.bigquery__create_columns": {"unique_id": "macro.dbt_bigquery.bigquery__create_columns", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "name": "bigquery__create_columns", "macro_sql": "{% macro bigquery__create_columns(relation, columns) %}\n {{ adapter.alter_table_add_columns(relation, columns) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2113018}, "macro.dbt_bigquery.bigquery__post_snapshot": {"unique_id": "macro.dbt_bigquery.bigquery__post_snapshot", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/materializations/snapshot.sql", "original_file_path": "macros/materializations/snapshot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2114298}, "macro.dbt_bigquery.bigquery__except": {"unique_id": "macro.dbt_bigquery.bigquery__except", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "bigquery__except", "macro_sql": "{% macro bigquery__except() %}\n\n except distinct\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.211589}, "macro.dbt_bigquery.bigquery__dateadd": {"unique_id": "macro.dbt_bigquery.bigquery__dateadd", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.211863}, "macro.dbt_bigquery.bigquery__intersect": {"unique_id": "macro.dbt_bigquery.bigquery__intersect", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "bigquery__intersect", "macro_sql": "{% macro bigquery__intersect() %}\n\n intersect distinct\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.212018}, "macro.dbt_bigquery.bigquery__escape_single_quotes": {"unique_id": "macro.dbt_bigquery.bigquery__escape_single_quotes", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "bigquery__escape_single_quotes", "macro_sql": "{% macro bigquery__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\", \"\\\\'\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2122638}, "macro.dbt_bigquery.bigquery__right": {"unique_id": "macro.dbt_bigquery.bigquery__right", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.212542}, "macro.dbt_bigquery.bigquery__listagg": {"unique_id": "macro.dbt_bigquery.bigquery__listagg", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.212967}, "macro.dbt_bigquery.bigquery__datediff": {"unique_id": "macro.dbt_bigquery.bigquery__datediff", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.213501}, "macro.dbt_bigquery.bigquery__safe_cast": {"unique_id": "macro.dbt_bigquery.bigquery__safe_cast", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "bigquery__safe_cast", "macro_sql": "{% macro bigquery__safe_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.213723}, "macro.dbt_bigquery.bigquery__hash": {"unique_id": "macro.dbt_bigquery.bigquery__hash", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "bigquery__hash", "macro_sql": "{% macro bigquery__hash(field) -%}\n to_hex({{dbt.default__hash(field)}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.213946}, "macro.dbt_bigquery.bigquery__position": {"unique_id": "macro.dbt_bigquery.bigquery__position", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2141771}, "macro.dbt_bigquery.bigquery__bool_or": {"unique_id": "macro.dbt_bigquery.bigquery__bool_or", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "bigquery__bool_or", "macro_sql": "{% macro bigquery__bool_or(expression) -%}\n\n logical_or({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.214359}, "macro.dbt_bigquery.bigquery__split_part": {"unique_id": "macro.dbt_bigquery.bigquery__split_part", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.21496}, "macro.dbt_bigquery.bigquery__date_trunc": {"unique_id": "macro.dbt_bigquery.bigquery__date_trunc", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2151968}, "macro.dbt_bigquery.bigquery__get_show_grant_sql": {"unique_id": "macro.dbt_bigquery.bigquery__get_show_grant_sql", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.215884}, "macro.dbt_bigquery.bigquery__get_grant_sql": {"unique_id": "macro.dbt_bigquery.bigquery__get_grant_sql", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.216206}, "macro.dbt_bigquery.bigquery__get_revoke_sql": {"unique_id": "macro.dbt_bigquery.bigquery__get_revoke_sql", "package_name": "dbt_bigquery", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/bigquery", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2164512}, "macro.dbt.run_hooks": {"unique_id": "macro.dbt.run_hooks", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.217677}, "macro.dbt.make_hook_config": {"unique_id": "macro.dbt.make_hook_config", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2179}, "macro.dbt.before_begin": {"unique_id": "macro.dbt.before_begin", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.21805}, "macro.dbt.in_transaction": {"unique_id": "macro.dbt.in_transaction", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2181911}, "macro.dbt.after_commit": {"unique_id": "macro.dbt.after_commit", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.218328}, "macro.dbt.set_sql_header": {"unique_id": "macro.dbt.set_sql_header", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.218783}, "macro.dbt.should_full_refresh": {"unique_id": "macro.dbt.should_full_refresh", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.219079}, "macro.dbt.should_store_failures": {"unique_id": "macro.dbt.should_store_failures", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2193768}, "macro.dbt.snapshot_merge_sql": {"unique_id": "macro.dbt.snapshot_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.21985}, "macro.dbt.default__snapshot_merge_sql": {"unique_id": "macro.dbt.default__snapshot_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2201211}, "macro.dbt.strategy_dispatch": {"unique_id": "macro.dbt.strategy_dispatch", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.223378}, "macro.dbt.snapshot_hash_arguments": {"unique_id": "macro.dbt.snapshot_hash_arguments", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2235441}, "macro.dbt.default__snapshot_hash_arguments": {"unique_id": "macro.dbt.default__snapshot_hash_arguments", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.223754}, "macro.dbt.snapshot_get_time": {"unique_id": "macro.dbt.snapshot_get_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_get_time", "macro_sql": "{% macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.223896}, "macro.dbt.default__snapshot_get_time": {"unique_id": "macro.dbt.default__snapshot_get_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() -%}\n {{ current_timestamp() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2239912}, "macro.dbt.snapshot_timestamp_strategy": {"unique_id": "macro.dbt.snapshot_timestamp_strategy", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.224758}, "macro.dbt.snapshot_string_as_time": {"unique_id": "macro.dbt.snapshot_string_as_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.224919}, "macro.dbt.default__snapshot_string_as_time": {"unique_id": "macro.dbt.default__snapshot_string_as_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2250829}, "macro.dbt.snapshot_check_all_get_existing_columns": {"unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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_sql']) -%}\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_sql'] }}) 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2264378}, "macro.dbt.snapshot_check_strategy": {"unique_id": "macro.dbt.snapshot_check_strategy", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.227711}, "macro.dbt.create_columns": {"unique_id": "macro.dbt.create_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2312908}, "macro.dbt.default__create_columns": {"unique_id": "macro.dbt.default__create_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2315679}, "macro.dbt.post_snapshot": {"unique_id": "macro.dbt.post_snapshot", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.231733}, "macro.dbt.default__post_snapshot": {"unique_id": "macro.dbt.default__post_snapshot", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.23182}, "macro.dbt.get_true_sql": {"unique_id": "macro.dbt.get_true_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.231961}, "macro.dbt.default__get_true_sql": {"unique_id": "macro.dbt.default__get_true_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.232078}, "macro.dbt.snapshot_staging_table": {"unique_id": "macro.dbt.snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.232276}, "macro.dbt.default__snapshot_staging_table": {"unique_id": "macro.dbt.default__snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2331169}, "macro.dbt.build_snapshot_table": {"unique_id": "macro.dbt.build_snapshot_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.233301}, "macro.dbt.default__build_snapshot_table": {"unique_id": "macro.dbt.default__build_snapshot_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.233545}, "macro.dbt.build_snapshot_staging_table": {"unique_id": "macro.dbt.build_snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.233968}, "macro.dbt.materialization_snapshot_default": {"unique_id": "macro.dbt.materialization_snapshot_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "name": "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_sql']) %}\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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.2397099}, "macro.dbt.materialization_test_default": {"unique_id": "macro.dbt.materialization_test_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.241743}, "macro.dbt.get_test_sql": {"unique_id": "macro.dbt.get_test_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.242235}, "macro.dbt.default__get_test_sql": {"unique_id": "macro.dbt.default__get_test_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2425358}, "macro.dbt.get_where_subquery": {"unique_id": "macro.dbt.get_where_subquery", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2429461}, "macro.dbt.default__get_where_subquery": {"unique_id": "macro.dbt.default__get_where_subquery", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2433212}, "macro.dbt.get_quoted_csv": {"unique_id": "macro.dbt.get_quoted_csv", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.244137}, "macro.dbt.diff_columns": {"unique_id": "macro.dbt.diff_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.244673}, "macro.dbt.diff_column_data_types": {"unique_id": "macro.dbt.diff_column_data_types", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.245274}, "macro.dbt.get_merge_sql": {"unique_id": "macro.dbt.get_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, predicates=none) -%}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, predicates) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.250026}, "macro.dbt.default__get_merge_sql": {"unique_id": "macro.dbt.default__get_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, predicates) -%}\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set update_columns = config.get('merge_update_columns', default = dest_columns | map(attribute=\"quoted\") | list) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.251492}, "macro.dbt.get_delete_insert_merge_sql": {"unique_id": "macro.dbt.get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.251792}, "macro.dbt.default__get_delete_insert_merge_sql": {"unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\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 );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n );\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.252522}, "macro.dbt.get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.25278}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.253391}, "macro.dbt.is_incremental": {"unique_id": "macro.dbt.is_incremental", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.254069}, "macro.dbt.materialization_incremental_default": {"unique_id": "macro.dbt.materialization_incremental_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "name": "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 {% set build_sql = get_delete_insert_merge_sql(target_relation, temp_relation, unique_key, dest_columns) %}\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 %}", "resource_type": "macro", "tags": [], "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.get_delete_insert_merge_sql", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2583601}, "macro.dbt.incremental_validate_on_schema_change": {"unique_id": "macro.dbt.incremental_validate_on_schema_change", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.262663}, "macro.dbt.check_for_schema_changes": {"unique_id": "macro.dbt.check_for_schema_changes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2638562}, "macro.dbt.sync_column_schemas": {"unique_id": "macro.dbt.sync_column_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.26502}, "macro.dbt.process_schema_changes": {"unique_id": "macro.dbt.process_schema_changes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 {% 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.265729}, "macro.dbt.materialization_table_default": {"unique_id": "macro.dbt.materialization_table_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.2682052}, "macro.dbt.get_create_table_as_sql": {"unique_id": "macro.dbt.get_create_table_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.268669}, "macro.dbt.default__get_create_table_as_sql": {"unique_id": "macro.dbt.default__get_create_table_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2688482}, "macro.dbt.create_table_as": {"unique_id": "macro.dbt.create_table_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, sql) -%}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2690492}, "macro.dbt.default__create_table_as": {"unique_id": "macro.dbt.default__create_table_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.269456}, "macro.dbt.materialization_view_default": {"unique_id": "macro.dbt.materialization_view_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/view.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.2719328}, "macro.dbt.handle_existing_table": {"unique_id": "macro.dbt.handle_existing_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2722828}, "macro.dbt.default__handle_existing_table": {"unique_id": "macro.dbt.default__handle_existing_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.272504}, "macro.dbt.create_or_replace_view": {"unique_id": "macro.dbt.create_or_replace_view", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.2739992}, "macro.dbt.get_create_view_as_sql": {"unique_id": "macro.dbt.get_create_view_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.274397}, "macro.dbt.default__get_create_view_as_sql": {"unique_id": "macro.dbt.default__get_create_view_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.274559}, "macro.dbt.create_view_as": {"unique_id": "macro.dbt.create_view_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.274741}, "macro.dbt.default__create_view_as": {"unique_id": "macro.dbt.default__create_view_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.274997}, "macro.dbt.materialization_seed_default": {"unique_id": "macro.dbt.materialization_seed_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.278173}, "macro.dbt.create_csv_table": {"unique_id": "macro.dbt.create_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2825458}, "macro.dbt.default__create_csv_table": {"unique_id": "macro.dbt.default__create_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.283432}, "macro.dbt.reset_csv_table": {"unique_id": "macro.dbt.reset_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.28366}, "macro.dbt.default__reset_csv_table": {"unique_id": "macro.dbt.default__reset_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2841332}, "macro.dbt.get_csv_sql": {"unique_id": "macro.dbt.get_csv_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.284322}, "macro.dbt.default__get_csv_sql": {"unique_id": "macro.dbt.default__get_csv_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.284449}, "macro.dbt.get_binding_char": {"unique_id": "macro.dbt.get_binding_char", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2845829}, "macro.dbt.default__get_binding_char": {"unique_id": "macro.dbt.default__get_binding_char", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2846909}, "macro.dbt.get_batch_size": {"unique_id": "macro.dbt.get_batch_size", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.284845}, "macro.dbt.default__get_batch_size": {"unique_id": "macro.dbt.default__get_batch_size", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2849548}, "macro.dbt.get_seed_column_quoted_csv": {"unique_id": "macro.dbt.get_seed_column_quoted_csv", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.285429}, "macro.dbt.load_csv_rows": {"unique_id": "macro.dbt.load_csv_rows", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.285608}, "macro.dbt.default__load_csv_rows": {"unique_id": "macro.dbt.default__load_csv_rows", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.286857}, "macro.dbt.generate_alias_name": {"unique_id": "macro.dbt.generate_alias_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.287293}, "macro.dbt.default__generate_alias_name": {"unique_id": "macro.dbt.default__generate_alias_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2875168}, "macro.dbt.generate_schema_name": {"unique_id": "macro.dbt.generate_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.288065}, "macro.dbt.default__generate_schema_name": {"unique_id": "macro.dbt.default__generate_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2883189}, "macro.dbt.generate_schema_name_for_env": {"unique_id": "macro.dbt.generate_schema_name_for_env", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.288595}, "macro.dbt.generate_database_name": {"unique_id": "macro.dbt.generate_database_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.289032}, "macro.dbt.default__generate_database_name": {"unique_id": "macro.dbt.default__generate_database_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.28928}, "macro.dbt.default__test_relationships": {"unique_id": "macro.dbt.default__test_relationships", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.289679}, "macro.dbt.default__test_not_null": {"unique_id": "macro.dbt.default__test_not_null", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2900312}, "macro.dbt.default__test_unique": {"unique_id": "macro.dbt.default__test_unique", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.290324}, "macro.dbt.default__test_accepted_values": {"unique_id": "macro.dbt.default__test_accepted_values", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2909179}, "macro.dbt.statement": {"unique_id": "macro.dbt.statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "statement", "macro_sql": "{% macro statement(name=None, fetch_result=False, auto_begin=True) -%}\n {%- if execute: -%}\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 {%- set res, table = adapter.execute(sql, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.292018}, "macro.dbt.noop_statement": {"unique_id": "macro.dbt.noop_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.292586}, "macro.dbt.run_query": {"unique_id": "macro.dbt.run_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.292874}, "macro.dbt.convert_datetime": {"unique_id": "macro.dbt.convert_datetime", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.294558}, "macro.dbt.dates_in_range": {"unique_id": "macro.dbt.dates_in_range", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.295786}, "macro.dbt.partition_range": {"unique_id": "macro.dbt.partition_range", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.296523}, "macro.dbt.py_current_timestring": {"unique_id": "macro.dbt.py_current_timestring", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2967548}, "macro.dbt.except": {"unique_id": "macro.dbt.except", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__except"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2970428}, "macro.dbt.default__except": {"unique_id": "macro.dbt.default__except", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2971148}, "macro.dbt.replace": {"unique_id": "macro.dbt.replace", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.297484}, "macro.dbt.default__replace": {"unique_id": "macro.dbt.default__replace", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.297642}, "macro.dbt.concat": {"unique_id": "macro.dbt.concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.297935}, "macro.dbt.default__concat": {"unique_id": "macro.dbt.default__concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.2980568}, "macro.dbt.length": {"unique_id": "macro.dbt.length", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__length"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.298351}, "macro.dbt.default__length": {"unique_id": "macro.dbt.default__length", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.298453}, "macro.dbt.dateadd": {"unique_id": "macro.dbt.dateadd", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.298832}, "macro.dbt.default__dateadd": {"unique_id": "macro.dbt.default__dateadd", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.298995}, "macro.dbt.intersect": {"unique_id": "macro.dbt.intersect", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__intersect"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.299267}, "macro.dbt.default__intersect": {"unique_id": "macro.dbt.default__intersect", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.299341}, "macro.dbt.escape_single_quotes": {"unique_id": "macro.dbt.escape_single_quotes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.299649}, "macro.dbt.default__escape_single_quotes": {"unique_id": "macro.dbt.default__escape_single_quotes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.299786}, "macro.dbt.right": {"unique_id": "macro.dbt.right", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__right"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.300123}, "macro.dbt.default__right": {"unique_id": "macro.dbt.default__right", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3002582}, "macro.dbt.listagg": {"unique_id": "macro.dbt.listagg", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__listagg"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.300898}, "macro.dbt.default__listagg": {"unique_id": "macro.dbt.default__listagg", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.301354}, "macro.dbt.datediff": {"unique_id": "macro.dbt.datediff", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.301731}, "macro.dbt.default__datediff": {"unique_id": "macro.dbt.default__datediff", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.301887}, "macro.dbt.safe_cast": {"unique_id": "macro.dbt.safe_cast", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.302224}, "macro.dbt.default__safe_cast": {"unique_id": "macro.dbt.default__safe_cast", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.302357}, "macro.dbt.hash": {"unique_id": "macro.dbt.hash", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__hash"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.302658}, "macro.dbt.default__hash": {"unique_id": "macro.dbt.default__hash", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.302817}, "macro.dbt.cast_bool_to_text": {"unique_id": "macro.dbt.cast_bool_to_text", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.303108}, "macro.dbt.default__cast_bool_to_text": {"unique_id": "macro.dbt.default__cast_bool_to_text", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.303263}, "macro.dbt.any_value": {"unique_id": "macro.dbt.any_value", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__any_value"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3035562}, "macro.dbt.default__any_value": {"unique_id": "macro.dbt.default__any_value", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.303659}, "macro.dbt.position": {"unique_id": "macro.dbt.position", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__position"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3039901}, "macro.dbt.default__position": {"unique_id": "macro.dbt.default__position", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3041248}, "macro.dbt.string_literal": {"unique_id": "macro.dbt.string_literal", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3044171}, "macro.dbt.default__string_literal": {"unique_id": "macro.dbt.default__string_literal", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.304516}, "macro.dbt.type_string": {"unique_id": "macro.dbt.type_string", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3053708}, "macro.dbt.default__type_string": {"unique_id": "macro.dbt.default__type_string", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.305519}, "macro.dbt.type_timestamp": {"unique_id": "macro.dbt.type_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.305679}, "macro.dbt.default__type_timestamp": {"unique_id": "macro.dbt.default__type_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.30583}, "macro.dbt.type_float": {"unique_id": "macro.dbt.type_float", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3061771}, "macro.dbt.default__type_float": {"unique_id": "macro.dbt.default__type_float", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.306327}, "macro.dbt.type_numeric": {"unique_id": "macro.dbt.type_numeric", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.306485}, "macro.dbt.default__type_numeric": {"unique_id": "macro.dbt.default__type_numeric", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.306657}, "macro.dbt.type_bigint": {"unique_id": "macro.dbt.type_bigint", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.306814}, "macro.dbt.default__type_bigint": {"unique_id": "macro.dbt.default__type_bigint", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3069608}, "macro.dbt.type_int": {"unique_id": "macro.dbt.type_int", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3071191}, "macro.dbt.default__type_int": {"unique_id": "macro.dbt.default__type_int", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.307261}, "macro.dbt.bool_or": {"unique_id": "macro.dbt.bool_or", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.30756}, "macro.dbt.default__bool_or": {"unique_id": "macro.dbt.default__bool_or", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.30766}, "macro.dbt.last_day": {"unique_id": "macro.dbt.last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.308036}, "macro.dbt.default_last_day": {"unique_id": "macro.dbt.default_last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.dateadd", "macro.dbt_utils.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3082979}, "macro.dbt.default__last_day": {"unique_id": "macro.dbt.default__last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.308437}, "macro.dbt.split_part": {"unique_id": "macro.dbt.split_part", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__split_part"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.308983}, "macro.dbt.default__split_part": {"unique_id": "macro.dbt.default__split_part", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3091462}, "macro.dbt._split_part_negative": {"unique_id": "macro.dbt._split_part_negative", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.309364}, "macro.dbt.date_trunc": {"unique_id": "macro.dbt.date_trunc", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.309685}, "macro.dbt.default__date_trunc": {"unique_id": "macro.dbt.default__date_trunc", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.30981}, "macro.dbt.create_schema": {"unique_id": "macro.dbt.create_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3102138}, "macro.dbt.default__create_schema": {"unique_id": "macro.dbt.default__create_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3103921}, "macro.dbt.drop_schema": {"unique_id": "macro.dbt.drop_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.310553}, "macro.dbt.default__drop_schema": {"unique_id": "macro.dbt.default__drop_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.310804}, "macro.dbt.get_create_index_sql": {"unique_id": "macro.dbt.get_create_index_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.31128}, "macro.dbt.default__get_create_index_sql": {"unique_id": "macro.dbt.default__get_create_index_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.311411}, "macro.dbt.create_indexes": {"unique_id": "macro.dbt.create_indexes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3115652}, "macro.dbt.default__create_indexes": {"unique_id": "macro.dbt.default__create_indexes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.311954}, "macro.dbt.make_intermediate_relation": {"unique_id": "macro.dbt.make_intermediate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3149598}, "macro.dbt.default__make_intermediate_relation": {"unique_id": "macro.dbt.default__make_intermediate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.315142}, "macro.dbt.make_temp_relation": {"unique_id": "macro.dbt.make_temp_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3153658}, "macro.dbt.default__make_temp_relation": {"unique_id": "macro.dbt.default__make_temp_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.315653}, "macro.dbt.make_backup_relation": {"unique_id": "macro.dbt.make_backup_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.315897}, "macro.dbt.default__make_backup_relation": {"unique_id": "macro.dbt.default__make_backup_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.316216}, "macro.dbt.drop_relation": {"unique_id": "macro.dbt.drop_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3164}, "macro.dbt.default__drop_relation": {"unique_id": "macro.dbt.default__drop_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3166149}, "macro.dbt.truncate_relation": {"unique_id": "macro.dbt.truncate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3167958}, "macro.dbt.default__truncate_relation": {"unique_id": "macro.dbt.default__truncate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3169532}, "macro.dbt.rename_relation": {"unique_id": "macro.dbt.rename_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.317153}, "macro.dbt.default__rename_relation": {"unique_id": "macro.dbt.default__rename_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.317431}, "macro.dbt.get_or_create_relation": {"unique_id": "macro.dbt.get_or_create_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.317676}, "macro.dbt.default__get_or_create_relation": {"unique_id": "macro.dbt.default__get_or_create_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.318291}, "macro.dbt.load_cached_relation": {"unique_id": "macro.dbt.load_cached_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.318523}, "macro.dbt.load_relation": {"unique_id": "macro.dbt.load_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.318665}, "macro.dbt.drop_relation_if_exists": {"unique_id": "macro.dbt.drop_relation_if_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3188531}, "macro.dbt.current_timestamp": {"unique_id": "macro.dbt.current_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "current_timestamp", "macro_sql": "{% macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.319384}, "macro.dbt.default__current_timestamp": {"unique_id": "macro.dbt.default__current_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.319527}, "macro.dbt.collect_freshness": {"unique_id": "macro.dbt.collect_freshness", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3197482}, "macro.dbt.default__collect_freshness": {"unique_id": "macro.dbt.default__collect_freshness", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.320158}, "macro.dbt.copy_grants": {"unique_id": "macro.dbt.copy_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.321756}, "macro.dbt.default__copy_grants": {"unique_id": "macro.dbt.default__copy_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.321868}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.32203}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.32214}, "macro.dbt.should_revoke": {"unique_id": "macro.dbt.should_revoke", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.322479}, "macro.dbt.get_show_grant_sql": {"unique_id": "macro.dbt.get_show_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3226628}, "macro.dbt.default__get_show_grant_sql": {"unique_id": "macro.dbt.default__get_show_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3227599}, "macro.dbt.get_grant_sql": {"unique_id": "macro.dbt.get_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3229818}, "macro.dbt.default__get_grant_sql": {"unique_id": "macro.dbt.default__get_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.323166}, "macro.dbt.get_revoke_sql": {"unique_id": "macro.dbt.get_revoke_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.323392}, "macro.dbt.default__get_revoke_sql": {"unique_id": "macro.dbt.default__get_revoke_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3235729}, "macro.dbt.get_dcl_statement_list": {"unique_id": "macro.dbt.get_dcl_statement_list", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3238049}, "macro.dbt.default__get_dcl_statement_list": {"unique_id": "macro.dbt.default__get_dcl_statement_list", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.32455}, "macro.dbt.call_dcl_statements": {"unique_id": "macro.dbt.call_dcl_statements", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.324739}, "macro.dbt.default__call_dcl_statements": {"unique_id": "macro.dbt.default__call_dcl_statements", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.324972}, "macro.dbt.apply_grants": {"unique_id": "macro.dbt.apply_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3251991}, "macro.dbt.default__apply_grants": {"unique_id": "macro.dbt.default__apply_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.3263118}, "macro.dbt.alter_column_comment": {"unique_id": "macro.dbt.alter_column_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.327012}, "macro.dbt.default__alter_column_comment": {"unique_id": "macro.dbt.default__alter_column_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.327175}, "macro.dbt.alter_relation_comment": {"unique_id": "macro.dbt.alter_relation_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.327376}, "macro.dbt.default__alter_relation_comment": {"unique_id": "macro.dbt.default__alter_relation_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.32754}, "macro.dbt.persist_docs": {"unique_id": "macro.dbt.persist_docs", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.327807}, "macro.dbt.default__persist_docs": {"unique_id": "macro.dbt.default__persist_docs", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3282828}, "macro.dbt.get_catalog": {"unique_id": "macro.dbt.get_catalog", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3296719}, "macro.dbt.default__get_catalog": {"unique_id": "macro.dbt.default__get_catalog", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.329925}, "macro.dbt.information_schema_name": {"unique_id": "macro.dbt.information_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3301098}, "macro.dbt.default__information_schema_name": {"unique_id": "macro.dbt.default__information_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3302689}, "macro.dbt.list_schemas": {"unique_id": "macro.dbt.list_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3304489}, "macro.dbt.default__list_schemas": {"unique_id": "macro.dbt.default__list_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.330705}, "macro.dbt.check_schema_exists": {"unique_id": "macro.dbt.check_schema_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3309078}, "macro.dbt.default__check_schema_exists": {"unique_id": "macro.dbt.default__check_schema_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.331198}, "macro.dbt.list_relations_without_caching": {"unique_id": "macro.dbt.list_relations_without_caching", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.331382}, "macro.dbt.default__list_relations_without_caching": {"unique_id": "macro.dbt.default__list_relations_without_caching", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3315341}, "macro.dbt.get_columns_in_relation": {"unique_id": "macro.dbt.get_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.333138}, "macro.dbt.default__get_columns_in_relation": {"unique_id": "macro.dbt.default__get_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.333369}, "macro.dbt.sql_convert_columns_in_relation": {"unique_id": "macro.dbt.sql_convert_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3336818}, "macro.dbt.get_columns_in_query": {"unique_id": "macro.dbt.get_columns_in_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3338618}, "macro.dbt.default__get_columns_in_query": {"unique_id": "macro.dbt.default__get_columns_in_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.334194}, "macro.dbt.alter_column_type": {"unique_id": "macro.dbt.alter_column_type", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.334433}, "macro.dbt.default__alter_column_type": {"unique_id": "macro.dbt.default__alter_column_type", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.33503}, "macro.dbt.alter_relation_add_remove_columns": {"unique_id": "macro.dbt.alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3352818}, "macro.dbt.default__alter_relation_add_remove_columns": {"unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.33605}, "macro.dbt.test_unique": {"unique_id": "macro.dbt.test_unique", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_bigquery.bigquery__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3365939}, "macro.dbt.test_not_null": {"unique_id": "macro.dbt.test_not_null", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.336822}, "macro.dbt.test_accepted_values": {"unique_id": "macro.dbt.test_accepted_values", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3371022}, "macro.dbt.test_relationships": {"unique_id": "macro.dbt.test_relationships", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3373702}, "macro.shopify_source.get_order_columns": {"unique_id": "macro.shopify_source.get_order_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_columns", "macro_sql": "{% macro get_order_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"order_id\"},\n {\"name\": \"processed_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"user_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"total_discounts\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"total_line_items_price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"total_price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"total_tax\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"source_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"subtotal_price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"taxes_included\", \"datatype\": \"boolean\", \"alias\": \"has_taxes_included\"},\n {\"name\": \"total_weight\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"landing_site_base_url\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"note\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"number\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"order_number\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"cancel_reason\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"cancelled_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"cancelled_timestamp\"},\n {\"name\": \"cart_token\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"checkout_token\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"closed_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"closed_timestamp\"},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"currency\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"financial_status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"processing_method\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"referring_site\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_address_1\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_address_2\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_city\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_company\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_country\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_country_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_first_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_last_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_latitude\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_longitude\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_phone\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_province\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_province_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"billing_address_zip\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"browser_ip\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"buyer_accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_buyer_accepted_marketing\"},\n {\"name\": \"total_shipping_price_set\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_address_1\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_address_2\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_company\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_country_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_first_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_last_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_latitude\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_longitude\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_phone\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_province\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_province_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"shipping_address_zip\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\", \"alias\": \"is_test_order\"},\n {\"name\": \"token\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_numeric", "macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_float", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3523068}, "macro.shopify_source.get_customer_columns": {"unique_id": "macro.shopify_source.get_customer_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_accepted_marketing\"},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"default_address_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"customer_id\"},\n {\"name\": \"last_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"orders_count\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"phone\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"state\", \"datatype\": dbt_utils.type_string(), \"alias\": \"account_state\"},\n {\"name\": \"tax_exempt\", \"datatype\": \"boolean\", \"alias\": \"is_tax_exempt\"},\n {\"name\": \"total_spent\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"updated_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"verified_email\", \"datatype\": \"boolean\", \"alias\": \"is_verified_email\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_numeric", "macro.dbt_utils.type_string", "macro.dbt_utils.type_float"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.353895}, "macro.shopify_source.get_order_line_refund_columns": {"unique_id": "macro.shopify_source.get_order_line_refund_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_refund_columns", "macro_sql": "{% macro get_order_line_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"order_line_refund_id\"},\n {\"name\": \"location_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"order_line_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"subtotal\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"total_tax\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"refund_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"restock_type\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_numeric", "macro.dbt_utils.type_float", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.354839}, "macro.shopify_source.get_order_line_columns": {"unique_id": "macro.shopify_source.get_order_line_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_columns", "macro_sql": "{% macro get_order_line_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"fulfillable_quantity\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"gift_card\", \"datatype\": \"boolean\", \"alias\": \"is_gift_card\"},\n {\"name\": \"grams\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"order_line_id\"},\n {\"name\": \"index\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"pre_tax_price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"product_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"property_charge_interval_frequency\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"property_for_shipping_jan_3_rd_2020\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"property_shipping_interval_frequency\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"property_shipping_interval_unit_type\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"property_subscription_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"},\n {\"name\": \"sku\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"title\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"total_discount\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"variant_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"vendor\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_numeric", "macro.dbt_utils.type_string", "macro.dbt_utils.type_float"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.357194}, "macro.shopify_source.get_product_columns": {"unique_id": "macro.shopify_source.get_product_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"handle\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"product_id\"},\n {\"name\": \"product_type\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"published_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"published_timestamp\"},\n {\"name\": \"published_scope\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"title\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"updated_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"vendor\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string", "macro.dbt_utils.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.358371}, "macro.shopify_source.get_product_variant_columns": {"unique_id": "macro.shopify_source.get_product_variant_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_variant_columns", "macro_sql": "{% macro get_product_variant_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"variant_id\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"product_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"inventory_item_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"image_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"title\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"sku\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"position\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"inventory_policy\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"compare_at_price\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"inventory_management\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"barcode\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"grams\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"inventory_quantity\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"weight\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"weight_unit\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"option_1\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"option_2\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"option_3\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"tax_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"old_inventory_quantity\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_numeric", "macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string", "macro.dbt_utils.type_float"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.360842}, "macro.shopify_source.get_transaction_columns": {"unique_id": "macro.shopify_source.get_transaction_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_transaction_columns", "macro_sql": "{% macro get_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"transaction_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"processed_at\", \"datatype\": dbt_utils.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"device_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"gateway\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"source_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"message\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"parent_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"payment_avs_result_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"payment_credit_card_bin\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"payment_cvv_result_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"payment_credit_card_number\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"payment_credit_card_company\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"kind\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"receipt\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"currency_exchange_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"currency_exchange_adjustment\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"currency_exchange_original_amount\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"currency_exchange_final_amount\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"currency_exchange_currency\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"error_code\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()}\n] %}\n\n{% if target.type in ('redshift','postgres') %}\n {{ columns.append({\"name\": \"authorization\", \"datatype\": dbt_utils.type_string(), \"quote\": True, \"alias\": \"authorization\"}) }}\n{% else %}\n {\"name\": \"authorization\", \"datatype\": dbt_utils.type_string()}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_numeric", "macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.363887}, "macro.shopify_source.get_refund_columns": {"unique_id": "macro.shopify_source.get_refund_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"refund_id\"},\n {\"name\": \"note\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"processed_at\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"restock\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt_utils.type_numeric()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_numeric", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3647249}, "macro.shopify_source.get_order_adjustment_columns": {"unique_id": "macro.shopify_source.get_order_adjustment_columns", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_adjustment_columns", "macro_sql": "{% macro get_order_adjustment_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt_utils.type_numeric(), \"alias\": \"order_adjustment_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt_utils.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"tax_amount\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"kind\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_numeric", "macro.dbt_utils.type_float", "macro.dbt_utils.type_string", "macro.dbt_utils.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3655748}, "macro.dbt_utils.except": {"unique_id": "macro.dbt_utils.except", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/except.sql", "original_file_path": "macros/cross_db_utils/except.sql", "name": "except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt_utils')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__except"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3658938}, "macro.dbt_utils.default__except": {"unique_id": "macro.dbt_utils.default__except", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/except.sql", "original_file_path": "macros/cross_db_utils/except.sql", "name": "default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.365966}, "macro.dbt_utils.bigquery__except": {"unique_id": "macro.dbt_utils.bigquery__except", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/except.sql", "original_file_path": "macros/cross_db_utils/except.sql", "name": "bigquery__except", "macro_sql": "{% macro bigquery__except() %}\n\n except distinct\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.366035}, "macro.dbt_utils.replace": {"unique_id": "macro.dbt_utils.replace", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/replace.sql", "original_file_path": "macros/cross_db_utils/replace.sql", "name": "replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt_utils') (field, old_chars, new_chars)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.366416}, "macro.dbt_utils.default__replace": {"unique_id": "macro.dbt_utils.default__replace", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/replace.sql", "original_file_path": "macros/cross_db_utils/replace.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3665879}, "macro.dbt_utils.concat": {"unique_id": "macro.dbt_utils.concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/concat.sql", "original_file_path": "macros/cross_db_utils/concat.sql", "name": "concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt_utils')(fields)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3669288}, "macro.dbt_utils.default__concat": {"unique_id": "macro.dbt_utils.default__concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/concat.sql", "original_file_path": "macros/cross_db_utils/concat.sql", "name": "default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3670468}, "macro.dbt_utils.type_string": {"unique_id": "macro.dbt_utils.type_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.367736}, "macro.dbt_utils.default__type_string": {"unique_id": "macro.dbt_utils.default__type_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_string", "macro_sql": "{% macro default__type_string() %}\n string\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.36781}, "macro.dbt_utils.redshift__type_string": {"unique_id": "macro.dbt_utils.redshift__type_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "redshift__type_string", "macro_sql": "\n\n{%- macro redshift__type_string() -%}\n varchar\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.367885}, "macro.dbt_utils.postgres__type_string": {"unique_id": "macro.dbt_utils.postgres__type_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "postgres__type_string", "macro_sql": "{% macro postgres__type_string() %}\n varchar\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3679512}, "macro.dbt_utils.snowflake__type_string": {"unique_id": "macro.dbt_utils.snowflake__type_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "snowflake__type_string", "macro_sql": "{% macro snowflake__type_string() %}\n varchar\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.36802}, "macro.dbt_utils.type_timestamp": {"unique_id": "macro.dbt_utils.type_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368172}, "macro.dbt_utils.default__type_timestamp": {"unique_id": "macro.dbt_utils.default__type_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n timestamp\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368245}, "macro.dbt_utils.postgres__type_timestamp": {"unique_id": "macro.dbt_utils.postgres__type_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "postgres__type_timestamp", "macro_sql": "{% macro postgres__type_timestamp() %}\n timestamp without time zone\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368313}, "macro.dbt_utils.snowflake__type_timestamp": {"unique_id": "macro.dbt_utils.snowflake__type_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "snowflake__type_timestamp", "macro_sql": "{% macro snowflake__type_timestamp() %}\n timestamp_ntz\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3683789}, "macro.dbt_utils.type_float": {"unique_id": "macro.dbt_utils.type_float", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__type_float"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368532}, "macro.dbt_utils.default__type_float": {"unique_id": "macro.dbt_utils.default__type_float", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_float", "macro_sql": "{% macro default__type_float() %}\n float\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368602}, "macro.dbt_utils.bigquery__type_float": {"unique_id": "macro.dbt_utils.bigquery__type_float", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "bigquery__type_float", "macro_sql": "{% macro bigquery__type_float() %}\n float64\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368669}, "macro.dbt_utils.type_numeric": {"unique_id": "macro.dbt_utils.type_numeric", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368889}, "macro.dbt_utils.default__type_numeric": {"unique_id": "macro.dbt_utils.default__type_numeric", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n numeric(28, 6)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.368959}, "macro.dbt_utils.bigquery__type_numeric": {"unique_id": "macro.dbt_utils.bigquery__type_numeric", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "bigquery__type_numeric", "macro_sql": "{% macro bigquery__type_numeric() %}\n numeric\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.369023}, "macro.dbt_utils.type_bigint": {"unique_id": "macro.dbt_utils.type_bigint", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.369185}, "macro.dbt_utils.default__type_bigint": {"unique_id": "macro.dbt_utils.default__type_bigint", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n bigint\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3692522}, "macro.dbt_utils.bigquery__type_bigint": {"unique_id": "macro.dbt_utils.bigquery__type_bigint", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "bigquery__type_bigint", "macro_sql": "{% macro bigquery__type_bigint() %}\n int64\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.36932}, "macro.dbt_utils.type_int": {"unique_id": "macro.dbt_utils.type_int", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__type_int"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.369473}, "macro.dbt_utils.default__type_int": {"unique_id": "macro.dbt_utils.default__type_int", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "default__type_int", "macro_sql": "{% macro default__type_int() %}\n int\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.369542}, "macro.dbt_utils.bigquery__type_int": {"unique_id": "macro.dbt_utils.bigquery__type_int", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datatypes.sql", "original_file_path": "macros/cross_db_utils/datatypes.sql", "name": "bigquery__type_int", "macro_sql": "{% macro bigquery__type_int() %}\n int64\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.36961}, "macro.dbt_utils._is_relation": {"unique_id": "macro.dbt_utils._is_relation", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/_is_relation.sql", "original_file_path": "macros/cross_db_utils/_is_relation.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3701131}, "macro.dbt_utils.cast_array_to_string": {"unique_id": "macro.dbt_utils.cast_array_to_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_array_to_string.sql", "original_file_path": "macros/cross_db_utils/cast_array_to_string.sql", "name": "cast_array_to_string", "macro_sql": "{% macro cast_array_to_string(array) %}\n {{ adapter.dispatch('cast_array_to_string', 'dbt_utils') (array) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__cast_array_to_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3705559}, "macro.dbt_utils.default__cast_array_to_string": {"unique_id": "macro.dbt_utils.default__cast_array_to_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_array_to_string.sql", "original_file_path": "macros/cross_db_utils/cast_array_to_string.sql", "name": "default__cast_array_to_string", "macro_sql": "{% macro default__cast_array_to_string(array) %}\n cast({{ array }} as {{ dbt_utils.type_string() }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.370689}, "macro.dbt_utils.postgres__cast_array_to_string": {"unique_id": "macro.dbt_utils.postgres__cast_array_to_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_array_to_string.sql", "original_file_path": "macros/cross_db_utils/cast_array_to_string.sql", "name": "postgres__cast_array_to_string", "macro_sql": "{% macro postgres__cast_array_to_string(array) %}\n {%- set array_as_string -%}cast({{ array }} as {{ dbt_utils.type_string() }}){%- endset -%}\n {{ dbt_utils.replace(dbt_utils.replace(array_as_string,\"'}'\",\"']'\"),\"'{'\",\"'['\") }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string", "macro.dbt_utils.replace"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.37098}, "macro.dbt_utils.redshift__cast_array_to_string": {"unique_id": "macro.dbt_utils.redshift__cast_array_to_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_array_to_string.sql", "original_file_path": "macros/cross_db_utils/cast_array_to_string.sql", "name": "redshift__cast_array_to_string", "macro_sql": "{% macro redshift__cast_array_to_string(array) %}\n cast({{ array }} as {{ dbt_utils.type_string() }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.371121}, "macro.dbt_utils.bigquery__cast_array_to_string": {"unique_id": "macro.dbt_utils.bigquery__cast_array_to_string", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_array_to_string.sql", "original_file_path": "macros/cross_db_utils/cast_array_to_string.sql", "name": "bigquery__cast_array_to_string", "macro_sql": "{% macro bigquery__cast_array_to_string(array) %}\n '['||(select string_agg(cast(element as string), ',') from unnest({{ array }}) element)||']'\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.371223}, "macro.dbt_utils.length": {"unique_id": "macro.dbt_utils.length", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/length.sql", "original_file_path": "macros/cross_db_utils/length.sql", "name": "length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt_utils') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__length"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3715682}, "macro.dbt_utils.default__length": {"unique_id": "macro.dbt_utils.default__length", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/length.sql", "original_file_path": "macros/cross_db_utils/length.sql", "name": "default__length", "macro_sql": "{% macro default__length(expression) %}\n \n length(\n {{ expression }}\n )\n \n{%- endmacro -%}\n\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3716748}, "macro.dbt_utils.redshift__length": {"unique_id": "macro.dbt_utils.redshift__length", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/length.sql", "original_file_path": "macros/cross_db_utils/length.sql", "name": "redshift__length", "macro_sql": "{% macro redshift__length(expression) %}\n\n len(\n {{ expression }}\n )\n \n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.371778}, "macro.dbt_utils.dateadd": {"unique_id": "macro.dbt_utils.dateadd", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/dateadd.sql", "original_file_path": "macros/cross_db_utils/dateadd.sql", "name": "dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt_utils')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.372384}, "macro.dbt_utils.default__dateadd": {"unique_id": "macro.dbt_utils.default__dateadd", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/dateadd.sql", "original_file_path": "macros/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.372541}, "macro.dbt_utils.bigquery__dateadd": {"unique_id": "macro.dbt_utils.bigquery__dateadd", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/dateadd.sql", "original_file_path": "macros/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.372695}, "macro.dbt_utils.postgres__dateadd": {"unique_id": "macro.dbt_utils.postgres__dateadd", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/dateadd.sql", "original_file_path": "macros/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.372848}, "macro.dbt_utils.redshift__dateadd": {"unique_id": "macro.dbt_utils.redshift__dateadd", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/dateadd.sql", "original_file_path": "macros/cross_db_utils/dateadd.sql", "name": "redshift__dateadd", "macro_sql": "{% macro redshift__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ return(dbt_utils.default__dateadd(datepart, interval, from_date_or_timestamp)) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.373107}, "macro.dbt_utils.intersect": {"unique_id": "macro.dbt_utils.intersect", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/intersect.sql", "original_file_path": "macros/cross_db_utils/intersect.sql", "name": "intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt_utils')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__intersect"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3734038}, "macro.dbt_utils.default__intersect": {"unique_id": "macro.dbt_utils.default__intersect", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/intersect.sql", "original_file_path": "macros/cross_db_utils/intersect.sql", "name": "default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3734741}, "macro.dbt_utils.bigquery__intersect": {"unique_id": "macro.dbt_utils.bigquery__intersect", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/intersect.sql", "original_file_path": "macros/cross_db_utils/intersect.sql", "name": "bigquery__intersect", "macro_sql": "{% macro bigquery__intersect() %}\n\n intersect distinct\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.373545}, "macro.dbt_utils.escape_single_quotes": {"unique_id": "macro.dbt_utils.escape_single_quotes", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/escape_single_quotes.sql", "original_file_path": "macros/cross_db_utils/escape_single_quotes.sql", "name": "escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt_utils') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.373921}, "macro.dbt_utils.default__escape_single_quotes": {"unique_id": "macro.dbt_utils.default__escape_single_quotes", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/escape_single_quotes.sql", "original_file_path": "macros/cross_db_utils/escape_single_quotes.sql", "name": "default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.374059}, "macro.dbt_utils.snowflake__escape_single_quotes": {"unique_id": "macro.dbt_utils.snowflake__escape_single_quotes", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/escape_single_quotes.sql", "original_file_path": "macros/cross_db_utils/escape_single_quotes.sql", "name": "snowflake__escape_single_quotes", "macro_sql": "{% macro snowflake__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\", \"\\\\'\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.374193}, "macro.dbt_utils.bigquery__escape_single_quotes": {"unique_id": "macro.dbt_utils.bigquery__escape_single_quotes", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/escape_single_quotes.sql", "original_file_path": "macros/cross_db_utils/escape_single_quotes.sql", "name": "bigquery__escape_single_quotes", "macro_sql": "{% macro bigquery__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\", \"\\\\'\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.374326}, "macro.dbt_utils.right": {"unique_id": "macro.dbt_utils.right", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/right.sql", "original_file_path": "macros/cross_db_utils/right.sql", "name": "right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt_utils') (string_text, length_expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__right"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.374889}, "macro.dbt_utils.default__right": {"unique_id": "macro.dbt_utils.default__right", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/right.sql", "original_file_path": "macros/cross_db_utils/right.sql", "name": "default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n \n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3750222}, "macro.dbt_utils.bigquery__right": {"unique_id": "macro.dbt_utils.bigquery__right", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/right.sql", "original_file_path": "macros/cross_db_utils/right.sql", "name": "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 -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3751738}, "macro.dbt_utils.snowflake__right": {"unique_id": "macro.dbt_utils.snowflake__right", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/right.sql", "original_file_path": "macros/cross_db_utils/right.sql", "name": "snowflake__right", "macro_sql": "{% macro snowflake__right(string_text, length_expression) %}\n\n case when {{ length_expression }} = 0 \n then ''\n else \n right(\n {{ string_text }},\n {{ length_expression }}\n )\n end\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3753211}, "macro.dbt_utils.listagg": {"unique_id": "macro.dbt_utils.listagg", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/listagg.sql", "original_file_path": "macros/cross_db_utils/listagg.sql", "name": "listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt_utils') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__listagg"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.377493}, "macro.dbt_utils.default__listagg": {"unique_id": "macro.dbt_utils.default__listagg", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/listagg.sql", "original_file_path": "macros/cross_db_utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.377887}, "macro.dbt_utils.bigquery__listagg": {"unique_id": "macro.dbt_utils.bigquery__listagg", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/listagg.sql", "original_file_path": "macros/cross_db_utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.378159}, "macro.dbt_utils.postgres__listagg": {"unique_id": "macro.dbt_utils.postgres__listagg", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/listagg.sql", "original_file_path": "macros/cross_db_utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3785331}, "macro.dbt_utils.redshift__listagg": {"unique_id": "macro.dbt_utils.redshift__listagg", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/listagg.sql", "original_file_path": "macros/cross_db_utils/listagg.sql", "name": "redshift__listagg", "macro_sql": "{% macro redshift__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n {% set ns = namespace() %}\n {% set ns.delimiter_text_regex = delimiter_text|trim(\"'\") %}\n {% set special_chars %}\\,^,$,.,|,?,*,+,(,),[,],{,}{% endset %} \n {%- for char in special_chars.split(',') -%}\n {% set escape_char %}\\\\{{ char }}{% endset %}\n {% set ns.delimiter_text_regex = ns.delimiter_text_regex|replace(char,escape_char) %}\n {%- endfor -%}\n\n {% set regex %}'([^{{ ns.delimiter_text_regex }}]+{{ ns.delimiter_text_regex }}){1,{{ limit_num - 1}}}[^{{ ns.delimiter_text_regex }}]+'{% endset %}\n regexp_substr(\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,{{ regex }}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.379511}, "macro.dbt_utils.datediff": {"unique_id": "macro.dbt_utils.datediff", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datediff.sql", "original_file_path": "macros/cross_db_utils/datediff.sql", "name": "datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt_utils')(first_date, second_date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3820632}, "macro.dbt_utils.default__datediff": {"unique_id": "macro.dbt_utils.default__datediff", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datediff.sql", "original_file_path": "macros/cross_db_utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.382231}, "macro.dbt_utils.bigquery__datediff": {"unique_id": "macro.dbt_utils.bigquery__datediff", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datediff.sql", "original_file_path": "macros/cross_db_utils/datediff.sql", "name": "bigquery__datediff", "macro_sql": "{% macro bigquery__datediff(first_date, second_date, datepart) -%}\n\n datetime_diff(\n cast({{second_date}} as datetime),\n cast({{first_date}} as datetime),\n {{datepart}}\n )\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3823822}, "macro.dbt_utils.postgres__datediff": {"unique_id": "macro.dbt_utils.postgres__datediff", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datediff.sql", "original_file_path": "macros/cross_db_utils/datediff.sql", "name": "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 ({{ dbt_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.384059}, "macro.dbt_utils.redshift__datediff": {"unique_id": "macro.dbt_utils.redshift__datediff", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/datediff.sql", "original_file_path": "macros/cross_db_utils/datediff.sql", "name": "redshift__datediff", "macro_sql": "{% macro redshift__datediff(first_date, second_date, datepart) -%}\n\n {{ return(dbt_utils.default__datediff(first_date, second_date, datepart)) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3842611}, "macro.dbt_utils.safe_cast": {"unique_id": "macro.dbt_utils.safe_cast", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/safe_cast.sql", "original_file_path": "macros/cross_db_utils/safe_cast.sql", "name": "safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt_utils') (field, type)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3846872}, "macro.dbt_utils.default__safe_cast": {"unique_id": "macro.dbt_utils.default__safe_cast", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/safe_cast.sql", "original_file_path": "macros/cross_db_utils/safe_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.384824}, "macro.dbt_utils.snowflake__safe_cast": {"unique_id": "macro.dbt_utils.snowflake__safe_cast", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/safe_cast.sql", "original_file_path": "macros/cross_db_utils/safe_cast.sql", "name": "snowflake__safe_cast", "macro_sql": "{% macro snowflake__safe_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3849459}, "macro.dbt_utils.bigquery__safe_cast": {"unique_id": "macro.dbt_utils.bigquery__safe_cast", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/safe_cast.sql", "original_file_path": "macros/cross_db_utils/safe_cast.sql", "name": "bigquery__safe_cast", "macro_sql": "{% macro bigquery__safe_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.385065}, "macro.dbt_utils.hash": {"unique_id": "macro.dbt_utils.hash", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/hash.sql", "original_file_path": "macros/cross_db_utils/hash.sql", "name": "hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt_utils') (field)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__hash"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.385395}, "macro.dbt_utils.default__hash": {"unique_id": "macro.dbt_utils.default__hash", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/hash.sql", "original_file_path": "macros/cross_db_utils/hash.sql", "name": "default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{field}} as {{dbt_utils.type_string()}}))\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3855329}, "macro.dbt_utils.bigquery__hash": {"unique_id": "macro.dbt_utils.bigquery__hash", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/hash.sql", "original_file_path": "macros/cross_db_utils/hash.sql", "name": "bigquery__hash", "macro_sql": "{% macro bigquery__hash(field) -%}\n to_hex({{dbt_utils.default__hash(field)}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.385663}, "macro.dbt_utils.cast_bool_to_text": {"unique_id": "macro.dbt_utils.cast_bool_to_text", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_bool_to_text.sql", "original_file_path": "macros/cross_db_utils/cast_bool_to_text.sql", "name": "cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt_utils') (field) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386009}, "macro.dbt_utils.default__cast_bool_to_text": {"unique_id": "macro.dbt_utils.default__cast_bool_to_text", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_bool_to_text.sql", "original_file_path": "macros/cross_db_utils/cast_bool_to_text.sql", "name": "default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ dbt_utils.type_string() }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386143}, "macro.dbt_utils.redshift__cast_bool_to_text": {"unique_id": "macro.dbt_utils.redshift__cast_bool_to_text", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/cast_bool_to_text.sql", "original_file_path": "macros/cross_db_utils/cast_bool_to_text.sql", "name": "redshift__cast_bool_to_text", "macro_sql": "{% macro redshift__cast_bool_to_text(field) %}\n case\n when {{ field }} is true then 'true'\n when {{ field }} is false then 'false'\n end::text\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386264}, "macro.dbt_utils.identifier": {"unique_id": "macro.dbt_utils.identifier", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/identifier.sql", "original_file_path": "macros/cross_db_utils/identifier.sql", "name": "identifier", "macro_sql": "{% macro identifier(value) %}\t\n {%- set error_message = '\n Warning: the `identifier` macro is no longer supported and will be deprecated in a future release of dbt-utils. \\\n Use `adapter.quote` instead. The {}.{} model triggered this warning. \\\n '.format(model.package_name, model.name) -%}\n {%- do exceptions.warn(error_message) -%}\n {{ return(adapter.dispatch('identifier', 'dbt_utils') (value)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__identifier"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386764}, "macro.dbt_utils.default__identifier": {"unique_id": "macro.dbt_utils.default__identifier", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/identifier.sql", "original_file_path": "macros/cross_db_utils/identifier.sql", "name": "default__identifier", "macro_sql": "{% macro default__identifier(value) -%}\t\n \"{{ value }}\"\t\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386867}, "macro.dbt_utils.bigquery__identifier": {"unique_id": "macro.dbt_utils.bigquery__identifier", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/identifier.sql", "original_file_path": "macros/cross_db_utils/identifier.sql", "name": "bigquery__identifier", "macro_sql": "{% macro bigquery__identifier(value) -%}\t\n `{{ value }}`\t\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.386962}, "macro.dbt_utils.any_value": {"unique_id": "macro.dbt_utils.any_value", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/any_value.sql", "original_file_path": "macros/cross_db_utils/any_value.sql", "name": "any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt_utils') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__any_value"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.387307}, "macro.dbt_utils.default__any_value": {"unique_id": "macro.dbt_utils.default__any_value", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/any_value.sql", "original_file_path": "macros/cross_db_utils/any_value.sql", "name": "default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n \n any_value({{ expression }})\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.387604}, "macro.dbt_utils.postgres__any_value": {"unique_id": "macro.dbt_utils.postgres__any_value", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/any_value.sql", "original_file_path": "macros/cross_db_utils/any_value.sql", "name": "postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n {#- /*Postgres doesn't support any_value, so we're using min() to get the same result*/ -#}\n min({{ expression }})\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3877099}, "macro.dbt_utils.position": {"unique_id": "macro.dbt_utils.position", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/position.sql", "original_file_path": "macros/cross_db_utils/position.sql", "name": "position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt_utils') (substring_text, string_text)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__position"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3881118}, "macro.dbt_utils.default__position": {"unique_id": "macro.dbt_utils.default__position", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/position.sql", "original_file_path": "macros/cross_db_utils/position.sql", "name": "default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n \n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.388245}, "macro.dbt_utils.bigquery__position": {"unique_id": "macro.dbt_utils.bigquery__position", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/position.sql", "original_file_path": "macros/cross_db_utils/position.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.388374}, "macro.dbt_utils.string_literal": {"unique_id": "macro.dbt_utils.string_literal", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/literal.sql", "original_file_path": "macros/cross_db_utils/literal.sql", "name": "string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt_utils') (value)) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.388682}, "macro.dbt_utils.default__string_literal": {"unique_id": "macro.dbt_utils.default__string_literal", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/literal.sql", "original_file_path": "macros/cross_db_utils/literal.sql", "name": "default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3887832}, "macro.dbt_utils.current_timestamp": {"unique_id": "macro.dbt_utils.current_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "current_timestamp", "macro_sql": "{% macro current_timestamp() -%}\n {{ return(adapter.dispatch('current_timestamp', 'dbt_utils')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.389363}, "macro.dbt_utils.default__current_timestamp": {"unique_id": "macro.dbt_utils.default__current_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() %}\n current_timestamp::{{dbt_utils.type_timestamp()}}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.389471}, "macro.dbt_utils.redshift__current_timestamp": {"unique_id": "macro.dbt_utils.redshift__current_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "redshift__current_timestamp", "macro_sql": "{% macro redshift__current_timestamp() %}\n getdate()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.389544}, "macro.dbt_utils.bigquery__current_timestamp": {"unique_id": "macro.dbt_utils.bigquery__current_timestamp", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "bigquery__current_timestamp", "macro_sql": "{% macro bigquery__current_timestamp() %}\n current_timestamp\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.38961}, "macro.dbt_utils.current_timestamp_in_utc": {"unique_id": "macro.dbt_utils.current_timestamp_in_utc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "current_timestamp_in_utc", "macro_sql": "{% macro current_timestamp_in_utc() -%}\n {{ return(adapter.dispatch('current_timestamp_in_utc', 'dbt_utils')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__current_timestamp_in_utc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.389764}, "macro.dbt_utils.default__current_timestamp_in_utc": {"unique_id": "macro.dbt_utils.default__current_timestamp_in_utc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "default__current_timestamp_in_utc", "macro_sql": "{% macro default__current_timestamp_in_utc() %}\n {{dbt_utils.current_timestamp()}}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.389868}, "macro.dbt_utils.snowflake__current_timestamp_in_utc": {"unique_id": "macro.dbt_utils.snowflake__current_timestamp_in_utc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "snowflake__current_timestamp_in_utc", "macro_sql": "{% macro snowflake__current_timestamp_in_utc() %}\n convert_timezone('UTC', {{dbt_utils.current_timestamp()}})::{{dbt_utils.type_timestamp()}}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.current_timestamp", "macro.dbt_utils.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.390008}, "macro.dbt_utils.postgres__current_timestamp_in_utc": {"unique_id": "macro.dbt_utils.postgres__current_timestamp_in_utc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "postgres__current_timestamp_in_utc", "macro_sql": "{% macro postgres__current_timestamp_in_utc() %}\n (current_timestamp at time zone 'utc')::{{dbt_utils.type_timestamp()}}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3901172}, "macro.dbt_utils.redshift__current_timestamp_in_utc": {"unique_id": "macro.dbt_utils.redshift__current_timestamp_in_utc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/cross_db_utils/current_timestamp.sql", "name": "redshift__current_timestamp_in_utc", "macro_sql": "{% macro redshift__current_timestamp_in_utc() %}\n {{ return(dbt_utils.default__current_timestamp_in_utc()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__current_timestamp_in_utc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.390244}, "macro.dbt_utils.width_bucket": {"unique_id": "macro.dbt_utils.width_bucket", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/width_bucket.sql", "original_file_path": "macros/cross_db_utils/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.391637}, "macro.dbt_utils.default__width_bucket": {"unique_id": "macro.dbt_utils.default__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/width_bucket.sql", "original_file_path": "macros/cross_db_utils/width_bucket.sql", "name": "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_utils.safe_cast(expr, dbt_utils.type_numeric() ) }},\n {{ dbt_utils.safe_cast(bin_size, dbt_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.safe_cast", "macro.dbt_utils.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.39217}, "macro.dbt_utils.redshift__width_bucket": {"unique_id": "macro.dbt_utils.redshift__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/width_bucket.sql", "original_file_path": "macros/cross_db_utils/width_bucket.sql", "name": "redshift__width_bucket", "macro_sql": "{% macro redshift__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 exactly at the bucket edge\n case\n when\n {{ dbt_utils.safe_cast(expr, dbt_utils.type_numeric() ) }} %\n {{ dbt_utils.safe_cast(bin_size, dbt_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.safe_cast", "macro.dbt_utils.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.392718}, "macro.dbt_utils.snowflake__width_bucket": {"unique_id": "macro.dbt_utils.snowflake__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/width_bucket.sql", "original_file_path": "macros/cross_db_utils/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3929129}, "macro.dbt_utils.array_concat": {"unique_id": "macro.dbt_utils.array_concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_concat.sql", "original_file_path": "macros/cross_db_utils/array_concat.sql", "name": "array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt_utils')(array_1, array_2)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3933702}, "macro.dbt_utils.default__array_concat": {"unique_id": "macro.dbt_utils.default__array_concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_concat.sql", "original_file_path": "macros/cross_db_utils/array_concat.sql", "name": "default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.393506}, "macro.dbt_utils.bigquery__array_concat": {"unique_id": "macro.dbt_utils.bigquery__array_concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_concat.sql", "original_file_path": "macros/cross_db_utils/array_concat.sql", "name": "bigquery__array_concat", "macro_sql": "{% macro bigquery__array_concat(array_1, array_2) -%}\n array_concat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.393631}, "macro.dbt_utils.redshift__array_concat": {"unique_id": "macro.dbt_utils.redshift__array_concat", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_concat.sql", "original_file_path": "macros/cross_db_utils/array_concat.sql", "name": "redshift__array_concat", "macro_sql": "{% macro redshift__array_concat(array_1, array_2) -%}\n array_concat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3937569}, "macro.dbt_utils.bool_or": {"unique_id": "macro.dbt_utils.bool_or", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/bool_or.sql", "original_file_path": "macros/cross_db_utils/bool_or.sql", "name": "bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt_utils') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.394136}, "macro.dbt_utils.default__bool_or": {"unique_id": "macro.dbt_utils.default__bool_or", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/bool_or.sql", "original_file_path": "macros/cross_db_utils/bool_or.sql", "name": "default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n \n bool_or({{ expression }})\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.394239}, "macro.dbt_utils.snowflake__bool_or": {"unique_id": "macro.dbt_utils.snowflake__bool_or", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/bool_or.sql", "original_file_path": "macros/cross_db_utils/bool_or.sql", "name": "snowflake__bool_or", "macro_sql": "{% macro snowflake__bool_or(expression) -%}\n \n boolor_agg({{ expression }})\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.394335}, "macro.dbt_utils.bigquery__bool_or": {"unique_id": "macro.dbt_utils.bigquery__bool_or", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/bool_or.sql", "original_file_path": "macros/cross_db_utils/bool_or.sql", "name": "bigquery__bool_or", "macro_sql": "{% macro bigquery__bool_or(expression) -%}\n \n logical_or({{ expression }})\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.39443}, "macro.dbt_utils.last_day": {"unique_id": "macro.dbt_utils.last_day", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/last_day.sql", "original_file_path": "macros/cross_db_utils/last_day.sql", "name": "last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt_utils') (date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.395009}, "macro.dbt_utils.default_last_day": {"unique_id": "macro.dbt_utils.default_last_day", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/last_day.sql", "original_file_path": "macros/cross_db_utils/last_day.sql", "name": "default_last_day", "macro_sql": "\n\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt_utils.dateadd('day', '-1',\n dbt_utils.dateadd(datepart, '1', dbt_utils.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.dateadd", "macro.dbt_utils.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3952699}, "macro.dbt_utils.default__last_day": {"unique_id": "macro.dbt_utils.default__last_day", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/last_day.sql", "original_file_path": "macros/cross_db_utils/last_day.sql", "name": "default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt_utils.default_last_day(date, datepart)}}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3954182}, "macro.dbt_utils.postgres__last_day": {"unique_id": "macro.dbt_utils.postgres__last_day", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/last_day.sql", "original_file_path": "macros/cross_db_utils/last_day.sql", "name": "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_utils.dateadd('day', '-1',\n dbt_utils.dateadd('month', '3', dbt_utils.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt_utils.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.dateadd", "macro.dbt_utils.date_trunc", "macro.dbt_utils.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.395809}, "macro.dbt_utils.redshift__last_day": {"unique_id": "macro.dbt_utils.redshift__last_day", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/last_day.sql", "original_file_path": "macros/cross_db_utils/last_day.sql", "name": "redshift__last_day", "macro_sql": "{% macro redshift__last_day(date, datepart) %}\n\n {{ return(dbt_utils.default__last_day(date, datepart)) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__last_day"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.395978}, "macro.dbt_utils.split_part": {"unique_id": "macro.dbt_utils.split_part", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt_utils') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__split_part"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.397417}, "macro.dbt_utils.default__split_part": {"unique_id": "macro.dbt_utils.default__split_part", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.397579}, "macro.dbt_utils._split_part_negative": {"unique_id": "macro.dbt_utils._split_part_negative", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.397797}, "macro.dbt_utils.postgres__split_part": {"unique_id": "macro.dbt_utils.postgres__split_part", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt_utils.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt_utils._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__split_part", "macro.dbt_utils._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3981252}, "macro.dbt_utils.redshift__split_part": {"unique_id": "macro.dbt_utils.redshift__split_part", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "redshift__split_part", "macro_sql": "{% macro redshift__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt_utils.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt_utils._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__split_part", "macro.dbt_utils._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3985128}, "macro.dbt_utils.bigquery__split_part": {"unique_id": "macro.dbt_utils.bigquery__split_part", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/split_part.sql", "original_file_path": "macros/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3988638}, "macro.dbt_utils.date_trunc": {"unique_id": "macro.dbt_utils.date_trunc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/date_trunc.sql", "original_file_path": "macros/cross_db_utils/date_trunc.sql", "name": "date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt_utils') (datepart, date)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.399245}, "macro.dbt_utils.default__date_trunc": {"unique_id": "macro.dbt_utils.default__date_trunc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/date_trunc.sql", "original_file_path": "macros/cross_db_utils/date_trunc.sql", "name": "default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.399373}, "macro.dbt_utils.bigquery__date_trunc": {"unique_id": "macro.dbt_utils.bigquery__date_trunc", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/date_trunc.sql", "original_file_path": "macros/cross_db_utils/date_trunc.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.3995001}, "macro.dbt_utils.array_construct": {"unique_id": "macro.dbt_utils.array_construct", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_construct.sql", "original_file_path": "macros/cross_db_utils/array_construct.sql", "name": "array_construct", "macro_sql": "{% macro array_construct(inputs = [], data_type = api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt_utils')(inputs, data_type)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.400038}, "macro.dbt_utils.default__array_construct": {"unique_id": "macro.dbt_utils.default__array_construct", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_construct.sql", "original_file_path": "macros/cross_db_utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.400272}, "macro.dbt_utils.snowflake__array_construct": {"unique_id": "macro.dbt_utils.snowflake__array_construct", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_construct.sql", "original_file_path": "macros/cross_db_utils/array_construct.sql", "name": "snowflake__array_construct", "macro_sql": "{% macro snowflake__array_construct(inputs, data_type) -%}\n array_construct( {{ inputs|join(' , ') }} )\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4004118}, "macro.dbt_utils.redshift__array_construct": {"unique_id": "macro.dbt_utils.redshift__array_construct", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_construct.sql", "original_file_path": "macros/cross_db_utils/array_construct.sql", "name": "redshift__array_construct", "macro_sql": "{% macro redshift__array_construct(inputs, data_type) -%}\n array( {{ inputs|join(' , ') }} )\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.400546}, "macro.dbt_utils.bigquery__array_construct": {"unique_id": "macro.dbt_utils.bigquery__array_construct", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_construct.sql", "original_file_path": "macros/cross_db_utils/array_construct.sql", "name": "bigquery__array_construct", "macro_sql": "{% macro bigquery__array_construct(inputs, data_type) -%}\n [ {{ inputs|join(' , ') }} ]\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4006789}, "macro.dbt_utils._is_ephemeral": {"unique_id": "macro.dbt_utils._is_ephemeral", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/_is_ephemeral.sql", "original_file_path": "macros/cross_db_utils/_is_ephemeral.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.401553}, "macro.dbt_utils.array_append": {"unique_id": "macro.dbt_utils.array_append", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_append.sql", "original_file_path": "macros/cross_db_utils/array_append.sql", "name": "array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt_utils')(array, new_element)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__array_append"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.401969}, "macro.dbt_utils.default__array_append": {"unique_id": "macro.dbt_utils.default__array_append", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_append.sql", "original_file_path": "macros/cross_db_utils/array_append.sql", "name": "default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.402101}, "macro.dbt_utils.bigquery__array_append": {"unique_id": "macro.dbt_utils.bigquery__array_append", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_append.sql", "original_file_path": "macros/cross_db_utils/array_append.sql", "name": "bigquery__array_append", "macro_sql": "{% macro bigquery__array_append(array, new_element) -%}\n {{ dbt_utils.array_concat(array, dbt_utils.array_construct([new_element])) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.array_concat", "macro.dbt_utils.array_construct"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.402285}, "macro.dbt_utils.redshift__array_append": {"unique_id": "macro.dbt_utils.redshift__array_append", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/array_append.sql", "original_file_path": "macros/cross_db_utils/array_append.sql", "name": "redshift__array_append", "macro_sql": "{% macro redshift__array_append(array, new_element) -%}\n {{ dbt_utils.array_concat(array, dbt_utils.array_construct([new_element])) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.array_concat", "macro.dbt_utils.array_construct"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.402465}, "macro.dbt_utils.get_period_boundaries": {"unique_id": "macro.dbt_utils.get_period_boundaries", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/materializations/insert_by_period_materialization.sql", "original_file_path": "macros/materializations/insert_by_period_materialization.sql", "name": "get_period_boundaries", "macro_sql": "{% macro get_period_boundaries(target_schema, target_table, timestamp_field, start_date, stop_date, period) -%}\n {{ return(adapter.dispatch('get_period_boundaries', 'dbt_utils')(target_schema, target_table, timestamp_field, start_date, stop_date, period)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_period_boundaries"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.408045}, "macro.dbt_utils.default__get_period_boundaries": {"unique_id": "macro.dbt_utils.default__get_period_boundaries", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/materializations/insert_by_period_materialization.sql", "original_file_path": "macros/materializations/insert_by_period_materialization.sql", "name": "default__get_period_boundaries", "macro_sql": "{% macro default__get_period_boundaries(target_schema, target_table, timestamp_field, start_date, stop_date, period) -%}\n\n {% call statement('period_boundaries', fetch_result=True) -%}\n with data as (\n select\n coalesce(max(\"{{timestamp_field}}\"), '{{start_date}}')::timestamp as start_timestamp,\n coalesce(\n {{dbt_utils.dateadd('millisecond',\n -1,\n \"nullif('\" ~ stop_date ~ \"','')::timestamp\")}},\n {{dbt_utils.current_timestamp()}}\n ) as stop_timestamp\n from \"{{target_schema}}\".\"{{target_table}}\"\n )\n\n select\n start_timestamp,\n stop_timestamp,\n {{dbt_utils.datediff('start_timestamp',\n 'stop_timestamp',\n period)}} + 1 as num_periods\n from data\n {%- endcall %}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.dateadd", "macro.dbt_utils.current_timestamp", "macro.dbt_utils.datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.408569}, "macro.dbt_utils.get_period_sql": {"unique_id": "macro.dbt_utils.get_period_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/materializations/insert_by_period_materialization.sql", "original_file_path": "macros/materializations/insert_by_period_materialization.sql", "name": "get_period_sql", "macro_sql": "{% macro get_period_sql(target_cols_csv, sql, timestamp_field, period, start_timestamp, stop_timestamp, offset) -%}\n {{ return(adapter.dispatch('get_period_sql', 'dbt_utils')(target_cols_csv, sql, timestamp_field, period, start_timestamp, stop_timestamp, offset)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_period_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.408889}, "macro.dbt_utils.default__get_period_sql": {"unique_id": "macro.dbt_utils.default__get_period_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/materializations/insert_by_period_materialization.sql", "original_file_path": "macros/materializations/insert_by_period_materialization.sql", "name": "default__get_period_sql", "macro_sql": "{% macro default__get_period_sql(target_cols_csv, sql, timestamp_field, period, start_timestamp, stop_timestamp, offset) -%}\n\n {%- set period_filter -%}\n (\"{{timestamp_field}}\" > '{{start_timestamp}}'::timestamp + interval '{{offset}} {{period}}' and\n \"{{timestamp_field}}\" <= '{{start_timestamp}}'::timestamp + interval '{{offset}} {{period}}' + interval '1 {{period}}' and\n \"{{timestamp_field}}\" < '{{stop_timestamp}}'::timestamp)\n {%- endset -%}\n\n {%- set filtered_sql = sql | replace(\"__PERIOD_FILTER__\", period_filter) -%}\n\n select\n {{target_cols_csv}}\n from (\n {{filtered_sql}}\n )\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.409469}, "macro.dbt_utils.materialization_insert_by_period_default": {"unique_id": "macro.dbt_utils.materialization_insert_by_period_default", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/materializations/insert_by_period_materialization.sql", "original_file_path": "macros/materializations/insert_by_period_materialization.sql", "name": "materialization_insert_by_period_default", "macro_sql": "{% materialization insert_by_period, default -%}\n {%- set timestamp_field = config.require('timestamp_field') -%}\n {%- set start_date = config.require('start_date') -%}\n {%- set stop_date = config.get('stop_date') or '' -%}\n {%- set period = config.get('period') or 'week' -%}\n\n {%- if sql.find('__PERIOD_FILTER__') == -1 -%}\n {%- set error_message -%}\n Model '{{ model.unique_id }}' does not include the required string '__PERIOD_FILTER__' in its sql\n {%- endset -%}\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n\n {%- set identifier = model['name'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set target_relation = api.Relation.create(identifier=identifier, schema=schema, type='table') -%}\n\n {%- set non_destructive_mode = (flags.NON_DESTRUCTIVE == True) -%}\n {%- set full_refresh_mode = (flags.FULL_REFRESH == True) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_not_as_table = (old_relation is not none and not old_relation.is_table) -%}\n\n {%- set should_truncate = (non_destructive_mode and full_refresh_mode and exists_as_table) -%}\n {%- set should_drop = (not should_truncate and (full_refresh_mode or exists_not_as_table)) -%}\n {%- set force_create = (flags.FULL_REFRESH and not flags.NON_DESTRUCTIVE) -%}\n\n -- setup\n {% if old_relation is none -%}\n -- noop\n {%- elif should_truncate -%}\n {{adapter.truncate_relation(old_relation)}}\n {%- elif should_drop -%}\n {{adapter.drop_relation(old_relation)}}\n {%- set old_relation = none -%}\n {%- endif %}\n\n {{run_hooks(pre_hooks, inside_transaction=False)}}\n\n -- `begin` happens here, so `commit` after it to finish the transaction\n {{run_hooks(pre_hooks, inside_transaction=True)}}\n {% call statement() -%}\n begin; -- make extra sure we've closed out the transaction\n commit;\n {%- endcall %}\n\n -- build model\n {% if force_create or old_relation is none -%}\n {# Create an empty target table -#}\n {% call statement('main') -%}\n {%- set empty_sql = sql | replace(\"__PERIOD_FILTER__\", 'false') -%}\n {{create_table_as(False, target_relation, empty_sql)}}\n {%- endcall %}\n {%- endif %}\n\n {% set _ = dbt_utils.get_period_boundaries(schema,\n identifier,\n timestamp_field,\n start_date,\n stop_date,\n period) %}\n {%- set start_timestamp = load_result('period_boundaries')['data'][0][0] | string -%}\n {%- set stop_timestamp = load_result('period_boundaries')['data'][0][1] | string -%}\n {%- set num_periods = load_result('period_boundaries')['data'][0][2] | int -%}\n\n {% set target_columns = adapter.get_columns_in_relation(target_relation) %}\n {%- set target_cols_csv = target_columns | map(attribute='quoted') | join(', ') -%}\n {%- set loop_vars = {'sum_rows_inserted': 0} -%}\n\n -- commit each period as a separate transaction\n {% for i in range(num_periods) -%}\n {%- set msg = \"Running for \" ~ period ~ \" \" ~ (i + 1) ~ \" of \" ~ (num_periods) -%}\n {{ dbt_utils.log_info(msg) }}\n\n {%- set tmp_identifier = model['name'] ~ '__dbt_incremental_period' ~ i ~ '_tmp' -%}\n {%- set tmp_relation = api.Relation.create(identifier=tmp_identifier,\n schema=schema, type='table') -%}\n {% call statement() -%}\n {% set tmp_table_sql = dbt_utils.get_period_sql(target_cols_csv,\n sql,\n timestamp_field,\n period,\n start_timestamp,\n stop_timestamp,\n i) %}\n {{dbt.create_table_as(True, tmp_relation, tmp_table_sql)}}\n {%- endcall %}\n\n {{adapter.expand_target_column_types(from_relation=tmp_relation,\n to_relation=target_relation)}}\n {%- set name = 'main-' ~ i -%}\n {% call statement(name, fetch_result=True) -%}\n insert into {{target_relation}} ({{target_cols_csv}})\n (\n select\n {{target_cols_csv}}\n from {{tmp_relation.include(schema=False)}}\n );\n {%- endcall %}\n {% set result = load_result('main-' ~ i) %}\n {% if 'response' in result.keys() %} {# added in v0.19.0 #}\n {% set rows_inserted = result['response']['rows_affected'] %}\n {% else %} {# older versions #}\n {% set rows_inserted = result['status'].split(\" \")[2] | int %}\n {% endif %}\n \n {%- set sum_rows_inserted = loop_vars['sum_rows_inserted'] + rows_inserted -%}\n {%- if loop_vars.update({'sum_rows_inserted': sum_rows_inserted}) %} {% endif -%}\n\n {%- set msg = \"Ran for \" ~ period ~ \" \" ~ (i + 1) ~ \" of \" ~ (num_periods) ~ \"; \" ~ rows_inserted ~ \" records inserted\" -%}\n {{ dbt_utils.log_info(msg) }}\n\n {%- endfor %}\n\n {% call statement() -%}\n begin;\n {%- endcall %}\n\n {{run_hooks(post_hooks, inside_transaction=True)}}\n\n {% call statement() -%}\n commit;\n {%- endcall %}\n\n {{run_hooks(post_hooks, inside_transaction=False)}}\n\n {%- set status_string = \"INSERT \" ~ loop_vars['sum_rows_inserted'] -%}\n\n {% call noop_statement('main', status_string) -%}\n -- no-op\n {%- endcall %}\n\n -- Return the relations created in this materialization\n {{ return({'relations': [target_relation]}) }} \n\n{%- endmaterialization %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.create_table_as", "macro.dbt_utils.get_period_boundaries", "macro.dbt_utils.log_info", "macro.dbt_utils.get_period_sql", "macro.dbt.noop_statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.414468}, "macro.dbt_utils.get_url_host": {"unique_id": "macro.dbt_utils.get_url_host", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.414932}, "macro.dbt_utils.default__get_url_host": {"unique_id": "macro.dbt_utils.default__get_url_host", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt_utils.split_part(\n dbt_utils.split_part(\n dbt_utils.replace(\n dbt_utils.replace(\n dbt_utils.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt_utils.safe_cast(\n parsed,\n dbt_utils.type_string()\n )}}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.split_part", "macro.dbt_utils.replace", "macro.dbt_utils.safe_cast", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.415416}, "macro.dbt_utils.get_url_path": {"unique_id": "macro.dbt_utils.get_url_path", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.415942}, "macro.dbt_utils.default__get_url_path": {"unique_id": "macro.dbt_utils.default__get_url_path", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url = \n dbt_utils.replace(\n dbt_utils.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{dbt_utils.position(\"'/'\", stripped_url)}}, 0),\n {{dbt_utils.position(\"'?'\", stripped_url)}} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt_utils.split_part(\n dbt_utils.right(\n stripped_url, \n dbt_utils.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ), \n \"'?'\", 1\n )\n -%}\n\n {{ dbt_utils.safe_cast(\n parsed_path,\n dbt_utils.type_string()\n )}}\n \n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.replace", "macro.dbt_utils.position", "macro.dbt_utils.split_part", "macro.dbt_utils.right", "macro.dbt_utils.length", "macro.dbt_utils.safe_cast", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.416585}, "macro.dbt_utils.get_url_parameter": {"unique_id": "macro.dbt_utils.get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.416963}, "macro.dbt_utils.default__get_url_parameter": {"unique_id": "macro.dbt_utils.default__get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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_utils.split_part(dbt_utils.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.split_part"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.417282}, "macro.dbt_utils.test_fewer_rows_than": {"unique_id": "macro.dbt_utils.test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.417849}, "macro.dbt_utils.default__test_fewer_rows_than": {"unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model) %}\n\n{{ config(fail_calc = 'coalesce(row_count_delta, 0)') }}\n\nwith a as (\n\n select count(*) as count_our_model from {{ model }}\n\n),\nb as (\n\n select count(*) as count_comparison_model from {{ compare_model }}\n\n),\ncounts as (\n\n select\n count_our_model,\n count_comparison_model\n from a\n cross join b\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.418072}, "macro.dbt_utils.test_equal_rowcount": {"unique_id": "macro.dbt_utils.test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.418505}, "macro.dbt_utils.default__test_equal_rowcount": {"unique_id": "macro.dbt_utils.default__test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = '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\nwith a as (\n\n select count(*) as count_a from {{ model }}\n\n),\nb as (\n\n select count(*) as count_b from {{ compare_model }}\n\n),\nfinal as (\n\n select\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n from a\n cross join b\n\n)\n\nselect * from final\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.418798}, "macro.dbt_utils.test_relationships_where": {"unique_id": "macro.dbt_utils.test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.419478}, "macro.dbt_utils.default__test_relationships_where": {"unique_id": "macro.dbt_utils.default__test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4198132}, "macro.dbt_utils.test_recency": {"unique_id": "macro.dbt_utils.test_recency", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "test_recency", "macro_sql": "{% test recency(model, field, datepart, interval) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.420259}, "macro.dbt_utils.default__test_recency": {"unique_id": "macro.dbt_utils.default__test_recency", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval) %}\n\n{% set threshold = dbt_utils.dateadd(datepart, interval * -1, dbt_utils.current_timestamp()) %}\n\nwith recency as (\n\n select max({{field}}) as most_recent\n from {{ model }}\n\n)\n\nselect\n\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.dateadd", "macro.dbt_utils.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4205801}, "macro.dbt_utils.test_not_constant": {"unique_id": "macro.dbt_utils.test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "test_not_constant", "macro_sql": "{% test not_constant(model, column_name) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.420943}, "macro.dbt_utils.default__test_not_constant": {"unique_id": "macro.dbt_utils.default__test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name) %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.421119}, "macro.dbt_utils.test_accepted_range": {"unique_id": "macro.dbt_utils.test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.421751}, "macro.dbt_utils.default__test_accepted_range": {"unique_id": "macro.dbt_utils.default__test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4222982}, "macro.dbt_utils.test_not_accepted_values": {"unique_id": "macro.dbt_utils.test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.422872}, "macro.dbt_utils.default__test_not_accepted_values": {"unique_id": "macro.dbt_utils.default__test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.42325}, "macro.dbt_utils.test_unique_where": {"unique_id": "macro.dbt_utils.test_unique_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/test_unique_where.sql", "original_file_path": "macros/generic_tests/test_unique_where.sql", "name": "test_unique_where", "macro_sql": "{% test unique_where(model, column_name) %}\r\n {%- set deprecation_warning = '\r\n Warning: `dbt_utils.unique_where` is no longer supported.\r\n Starting in dbt v0.20.0, the built-in `unique` test supports a `where` config.\r\n ' -%}\r\n {%- do exceptions.warn(deprecation_warning) -%}\r\n {{ return(adapter.dispatch('test_unique_where', 'dbt_utils')(model, column_name)) }}\r\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_where"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.423706}, "macro.dbt_utils.default__test_unique_where": {"unique_id": "macro.dbt_utils.default__test_unique_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/test_unique_where.sql", "original_file_path": "macros/generic_tests/test_unique_where.sql", "name": "default__test_unique_where", "macro_sql": "{% macro default__test_unique_where(model, column_name) %}\r\n {{ return(test_unique(model, column_name)) }}\r\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.test_unique"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.423871}, "macro.dbt_utils.test_at_least_one": {"unique_id": "macro.dbt_utils.test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4242392}, "macro.dbt_utils.default__test_at_least_one": {"unique_id": "macro.dbt_utils.default__test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name) %}\n\nselect *\nfrom (\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n count({{ column_name }}) as filler_column\n\n from {{ model }}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4244092}, "macro.dbt_utils.test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4250429}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.42567}, "macro.dbt_utils.test_cardinality_equality": {"unique_id": "macro.dbt_utils.test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.426255}, "macro.dbt_utils.default__test_cardinality_equality": {"unique_id": "macro.dbt_utils.default__test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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_utils.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.except"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.426592}, "macro.dbt_utils.test_expression_is_true": {"unique_id": "macro.dbt_utils.test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None, condition='1=1') %}\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 {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name, condition)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.427094}, "macro.dbt_utils.default__test_expression_is_true": {"unique_id": "macro.dbt_utils.default__test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name, condition) %}\n\nwith meet_condition as (\n select * from {{ model }} where {{ condition }}\n)\n\nselect\n *\nfrom meet_condition\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4273741}, "macro.dbt_utils.test_not_null_proportion": {"unique_id": "macro.dbt_utils.test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, **kwargs)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.427833}, "macro.dbt_utils.default__test_not_null_proportion": {"unique_id": "macro.dbt_utils.default__test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model) %}\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\nwith validation as (\n select\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),\nvalidation_errors as (\n select\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.428344}, "macro.dbt_utils.test_sequential_values": {"unique_id": "macro.dbt_utils.test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart)) }}\n\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.429021}, "macro.dbt_utils.default__test_sequential_values": {"unique_id": "macro.dbt_utils.default__test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\nwith windowed as (\n\n select\n {{ column_name }},\n lag({{ column_name }}) over (\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_utils.type_timestamp() }})= cast({{ dbt_utils.dateadd(datepart, interval, previous_column_name) }} as {{ dbt_utils.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt_utils.type_timestamp", "macro.dbt_utils.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.429683}, "macro.dbt_utils.test_not_null_where": {"unique_id": "macro.dbt_utils.test_not_null_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/test_not_null_where.sql", "original_file_path": "macros/generic_tests/test_not_null_where.sql", "name": "test_not_null_where", "macro_sql": "{% test not_null_where(model, column_name) %}\r\n {%- set deprecation_warning = '\r\n Warning: `dbt_utils.not_null_where` is no longer supported.\r\n Starting in dbt v0.20.0, the built-in `not_null` test supports a `where` config.\r\n ' -%}\r\n {%- do exceptions.warn(deprecation_warning) -%}\r\n {{ return(adapter.dispatch('test_not_null_where', 'dbt_utils')(model, column_name)) }}\r\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_where"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4301372}, "macro.dbt_utils.default__test_not_null_where": {"unique_id": "macro.dbt_utils.default__test_not_null_where", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/test_not_null_where.sql", "original_file_path": "macros/generic_tests/test_not_null_where.sql", "name": "default__test_not_null_where", "macro_sql": "{% macro default__test_not_null_where(model, column_name) %}\r\n {{ return(test_not_null(model, column_name)) }}\r\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.430311}, "macro.dbt_utils.test_equality": {"unique_id": "macro.dbt_utils.test_equality", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.431083}, "macro.dbt_utils.default__test_equality": {"unique_id": "macro.dbt_utils.default__test_equality", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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_utils.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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.except"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.43195}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.434898}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_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 nore 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.436384}, "macro.dbt_utils.pretty_log_format": {"unique_id": "macro.dbt_utils.pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4367082}, "macro.dbt_utils.default__pretty_log_format": {"unique_id": "macro.dbt_utils.default__pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4368708}, "macro.dbt_utils.pretty_time": {"unique_id": "macro.dbt_utils.pretty_time", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.437191}, "macro.dbt_utils.default__pretty_time": {"unique_id": "macro.dbt_utils.default__pretty_time", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.437387}, "macro.dbt_utils.log_info": {"unique_id": "macro.dbt_utils.log_info", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4376872}, "macro.dbt_utils.default__log_info": {"unique_id": "macro.dbt_utils.default__log_info", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4378529}, "macro.dbt_utils.slugify": {"unique_id": "macro.dbt_utils.slugify", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "name": "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\n{{ return(string) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.438365}, "macro.dbt_utils.get_intervals_between": {"unique_id": "macro.dbt_utils.get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.439072}, "macro.dbt_utils.default__get_intervals_between": {"unique_id": "macro.dbt_utils.default__get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4396532}, "macro.dbt_utils.date_spine": {"unique_id": "macro.dbt_utils.date_spine", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.43988}, "macro.dbt_utils.default__date_spine": {"unique_id": "macro.dbt_utils.default__date_spine", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 \"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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt_utils.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.440233}, "macro.dbt_utils.nullcheck_table": {"unique_id": "macro.dbt_utils.nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4405918}, "macro.dbt_utils.default__nullcheck_table": {"unique_id": "macro.dbt_utils.default__nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.441}, "macro.dbt_utils.get_relations_by_pattern": {"unique_id": "macro.dbt_utils.get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.441688}, "macro.dbt_utils.default__get_relations_by_pattern": {"unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.442518}, "macro.dbt_utils.get_powers_of_two": {"unique_id": "macro.dbt_utils.get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.443336}, "macro.dbt_utils.default__get_powers_of_two": {"unique_id": "macro.dbt_utils.default__get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4437451}, "macro.dbt_utils.generate_series": {"unique_id": "macro.dbt_utils.generate_series", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4439309}, "macro.dbt_utils.default__generate_series": {"unique_id": "macro.dbt_utils.default__generate_series", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.444435}, "macro.dbt_utils.get_relations_by_prefix": {"unique_id": "macro.dbt_utils.get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4451258}, "macro.dbt_utils.default__get_relations_by_prefix": {"unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.445963}, "macro.dbt_utils.get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.446408}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4466932}, "macro.dbt_utils.star": {"unique_id": "macro.dbt_utils.star", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.447395}, "macro.dbt_utils.default__star": {"unique_id": "macro.dbt_utils.default__star", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {%- do dbt_utils._is_relation(from, 'star') -%}\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\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 cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\n\n {%- if cols|length <= 0 -%}\n {{- return('*') -}}\n {%- else -%}\n {%- for col in cols %}\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}{{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\n {%- if not loop.last %},{{ '\\n ' }}{% endif %}\n {%- endfor -%}\n {% endif %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.44836}, "macro.dbt_utils.unpivot": {"unique_id": "macro.dbt_utils.unpivot", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', table=none) -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name, table)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4500391}, "macro.dbt_utils.default__unpivot": {"unique_id": "macro.dbt_utils.default__unpivot", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', table=none) -%}\n\n {% if table %}\n {%- set error_message = '\n Warning: the `unpivot` macro no longer accepts a `table` parameter. \\\n This parameter will be deprecated in a future release of dbt-utils. Use the `relation` parameter instead. \\\n The {}.{} model triggered this warning. \\\n '.format(model.package_name, model.name) -%}\n {%- do exceptions.warn(error_message) -%}\n {% endif %}\n\n {% if relation and table %}\n {{ exceptions.raise_compiler_error(\"Error: both the `relation` and `table` parameters were provided to `unpivot` macro. Choose one only (we recommend `relation`).\") }}\n {% elif not relation and table %}\n {% set relation=table %}\n {% elif not relation and not table %}\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_utils.type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.type_string", "macro.dbt_utils.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.452071}, "macro.dbt_utils.union_relations": {"unique_id": "macro.dbt_utils.union_relations", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.454528}, "macro.dbt_utils.default__union_relations": {"unique_id": "macro.dbt_utils.default__union_relations", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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\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 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 {%- 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 cast({{ dbt_utils.string_literal(relation) }} as {{ dbt_utils.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 {{ 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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.string_literal", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.457504}, "macro.dbt_utils.group_by": {"unique_id": "macro.dbt_utils.group_by", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.457849}, "macro.dbt_utils.default__group_by": {"unique_id": "macro.dbt_utils.default__group_by", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4581041}, "macro.dbt_utils.deduplicate": {"unique_id": "macro.dbt_utils.deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by=none, relation_alias=none) -%}\n\n {%- set error_message_group_by -%}\nWarning: the `group_by` parameter of the `deduplicate` macro is no longer supported and will be deprecated in a future release of dbt-utils.\nUse `partition_by` instead.\nThe {{ model.package_name }}.{{ model.name }} model triggered this warning.\n {%- endset -%}\n\n {% if kwargs.get('group_by') %}\n {%- do exceptions.warn(error_message_group_by) -%}\n {%- endif -%}\n\n {%- set error_message_order_by -%}\nWarning: `order_by` as an optional parameter of the `deduplicate` macro is no longer supported and will be deprecated in a future release of dbt-utils.\nSupply a non-null value for `order_by` instead.\nThe {{ model.package_name }}.{{ model.name }} model triggered this warning.\n {%- endset -%}\n\n {% if not order_by %}\n {%- do exceptions.warn(error_message_order_by) -%}\n {%- endif -%}\n\n {%- set error_message_alias -%}\nWarning: the `relation_alias` parameter of the `deduplicate` macro is no longer supported and will be deprecated in a future release of dbt-utils.\nIf you were using `relation_alias` to point to a CTE previously then you can now pass the alias directly to `relation` instead.\nThe {{ model.package_name }}.{{ model.name }} model triggered this warning.\n {%- endset -%}\n\n {% if relation_alias %}\n {%- do exceptions.warn(error_message_alias) -%}\n {%- endif -%}\n\n {% set partition_by = partition_by or kwargs.get('group_by') %}\n {% set relation = relation_alias or relation %}\n {% set order_by = order_by or \"'1'\" %}\n\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.460495}, "macro.dbt_utils.default__deduplicate": {"unique_id": "macro.dbt_utils.default__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.460709}, "macro.dbt_utils.redshift__deduplicate": {"unique_id": "macro.dbt_utils.redshift__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.460905}, "macro.dbt_utils.postgres__deduplicate": {"unique_id": "macro.dbt_utils.postgres__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4610949}, "macro.dbt_utils.snowflake__deduplicate": {"unique_id": "macro.dbt_utils.snowflake__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4612532}, "macro.dbt_utils.bigquery__deduplicate": {"unique_id": "macro.dbt_utils.bigquery__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.461418}, "macro.dbt_utils.surrogate_key": {"unique_id": "macro.dbt_utils.surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {# needed for safe_add to allow for non-keyword arguments see SO post #}\n {# https://stackoverflow.com/questions/13944751/args-kwargs-in-jinja2-macros #}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.462037}, "macro.dbt_utils.default__surrogate_key": {"unique_id": "macro.dbt_utils.default__surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- if varargs|length >= 1 or field_list is string %}\n\n{%- set error_message = '\nWarning: the `surrogate_key` macro now takes a single list argument instead of \\\nmultiple string arguments. Support for multiple string arguments will be \\\ndeprecated in a future release of dbt-utils. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{# first argument is not included in varargs, so add first element to field_list_xf #}\n{%- set field_list_xf = [field_list] -%}\n\n{%- for field in varargs %}\n{%- set _ = field_list_xf.append(field) -%}\n{%- endfor -%}\n\n{%- else -%}\n\n{# if using list, just set field_list_xf as field_list #}\n{%- set field_list_xf = field_list -%}\n\n{%- endif -%}\n\n\n{%- set fields = [] -%}\n\n{%- for field in field_list_xf -%}\n\n {%- set _ = fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt_utils.type_string() ~ \"), '')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- set _ = fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{dbt_utils.hash(dbt_utils.concat(fields))}}\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string", "macro.dbt_utils.hash", "macro.dbt_utils.concat"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.462972}, "macro.dbt_utils.safe_add": {"unique_id": "macro.dbt_utils.safe_add", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "safe_add", "macro_sql": "{%- macro safe_add() -%}\n {# needed for safe_add to allow for non-keyword arguments see SO post #}\n {# https://stackoverflow.com/questions/13944751/args-kwargs-in-jinja2-macros #}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(*varargs)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4633942}, "macro.dbt_utils.default__safe_add": {"unique_id": "macro.dbt_utils.default__safe_add", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add() -%}\n\n{% set fields = [] %}\n\n{%- for field in varargs -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4636831}, "macro.dbt_utils.nullcheck": {"unique_id": "macro.dbt_utils.nullcheck", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.464082}, "macro.dbt_utils.default__nullcheck": {"unique_id": "macro.dbt_utils.default__nullcheck", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4644108}, "macro.dbt_utils.get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.465877}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 \"table_schema\",\n table_name as \"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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.466153}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.466919}, "macro.dbt_utils._bigquery__get_matching_schemata": {"unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.467415}, "macro.dbt_utils.get_column_values": {"unique_id": "macro.dbt_utils.get_column_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.468519}, "macro.dbt_utils.default__get_column_values": {"unique_id": "macro.dbt_utils.default__get_column_values", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.469992}, "macro.dbt_utils.pivot": {"unique_id": "macro.dbt_utils.pivot", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.471061}, "macro.dbt_utils.default__pivot": {"unique_id": "macro.dbt_utils.default__pivot", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4718862}, "macro.dbt_utils.get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.472388}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4731038}, "macro.dbt_utils.get_query_results_as_dict": {"unique_id": "macro.dbt_utils.get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4735308}, "macro.dbt_utils.default__get_query_results_as_dict": {"unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.474112}, "macro.dbt_utils.get_table_types_sql": {"unique_id": "macro.dbt_utils.get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.474617}, "macro.dbt_utils.default__get_table_types_sql": {"unique_id": "macro.dbt_utils.default__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 \"table_type\"\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4747}, "macro.dbt_utils.postgres__get_table_types_sql": {"unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 \"table_type\"\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.474786}, "macro.dbt_utils.bigquery__get_table_types_sql": {"unique_id": "macro.dbt_utils.bigquery__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "bigquery__get_table_types_sql", "macro_sql": "{% macro bigquery__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 `table_type`\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4748642}, "macro.dbt_utils.degrees_to_radians": {"unique_id": "macro.dbt_utils.degrees_to_radians", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.475879}, "macro.dbt_utils.haversine_distance": {"unique_id": "macro.dbt_utils.haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.bigquery__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.476164}, "macro.dbt_utils.default__haversine_distance": {"unique_id": "macro.dbt_utils.default__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.476748}, "macro.dbt_utils.bigquery__haversine_distance": {"unique_id": "macro.dbt_utils.bigquery__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.477598}, "macro.klaviyo_source.get_campaign_columns": {"unique_id": "macro.klaviyo_source.get_campaign_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_campaign_columns.sql", "original_file_path": "macros/get_campaign_columns.sql", "name": "get_campaign_columns", "macro_sql": "{% macro get_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"campaign_type\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"created\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"email_template_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"from_email\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"from_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"is_segmented\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"send_time\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"sent_at\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"status_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"status_label\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"subject\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt_utils.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4795048}, "macro.klaviyo_source.get_metric_columns": {"unique_id": "macro.klaviyo_source.get_metric_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_metric_columns.sql", "original_file_path": "macros/get_metric_columns.sql", "name": "get_metric_columns", "macro_sql": "{% macro get_metric_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"integration_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt_utils.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.480439}, "macro.klaviyo_source.get_flow_columns": {"unique_id": "macro.klaviyo_source.get_flow_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_flow_columns.sql", "original_file_path": "macros/get_flow_columns.sql", "name": "get_flow_columns", "macro_sql": "{% macro get_flow_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"status\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"trigger\", \"datatype\": dbt_utils.type_string(), \"quote\": True},\n {\"name\": \"updated\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"customer_filter\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4815638}, "macro.klaviyo_source.get_integration_columns": {"unique_id": "macro.klaviyo_source.get_integration_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_integration_columns.sql", "original_file_path": "macros/get_integration_columns.sql", "name": "get_integration_columns", "macro_sql": "{% macro get_integration_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"category\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"name\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.48228}, "macro.klaviyo_source.get_person_columns": {"unique_id": "macro.klaviyo_source.get_person_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_person_columns.sql", "original_file_path": "macros/get_person_columns.sql", "name": "get_person_columns", "macro_sql": "{% macro get_person_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"address_1\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"address_2\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"city\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"country\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"created\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"email\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"last_name\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"latitude\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"longitude\", \"datatype\": dbt_utils.type_float()},\n {\"name\": \"organization\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"phone_number\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"region\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"timezone\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"title\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"zip\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__person_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string", "macro.dbt_utils.type_float", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.484575}, "macro.klaviyo_source.get_event_columns": {"unique_id": "macro.klaviyo_source.get_event_columns", "package_name": "klaviyo_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_event_columns.sql", "original_file_path": "macros/get_event_columns.sql", "name": "get_event_columns", "macro_sql": "{% macro get_event_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"_variation\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"datetime\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"flow_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"flow_message_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"metric_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"person_id\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"timestamp\", \"datatype\": dbt_utils.type_timestamp()},\n {\"name\": \"type\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"uuid\", \"datatype\": dbt_utils.type_string()},\n {\"name\": \"property_value\", \"datatype\": dbt_utils.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__event_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_timestamp", "macro.dbt_utils.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4862661}, "macro.spark_utils.get_tables": {"unique_id": "macro.spark_utils.get_tables", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4909928}, "macro.spark_utils.get_delta_tables": {"unique_id": "macro.spark_utils.get_delta_tables", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.491683}, "macro.spark_utils.get_statistic_columns": {"unique_id": "macro.spark_utils.get_statistic_columns", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4925609}, "macro.spark_utils.spark_optimize_delta_tables": {"unique_id": "macro.spark_utils.spark_optimize_delta_tables", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.493459}, "macro.spark_utils.spark_vacuum_delta_tables": {"unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4941828}, "macro.spark_utils.spark_analyze_tables": {"unique_id": "macro.spark_utils.spark_analyze_tables", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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}, "patch_path": null, "arguments": [], "created_at": 1665703194.4950771}, "macro.spark_utils.spark__concat": {"unique_id": "macro.spark_utils.spark__concat", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "name": "spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.4953191}, "macro.spark_utils.spark__type_numeric": {"unique_id": "macro.spark_utils.spark__type_numeric", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "name": "spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.495477}, "macro.spark_utils.spark__dateadd": {"unique_id": "macro.spark_utils.spark__dateadd", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.498207}, "macro.spark_utils.spark__datediff": {"unique_id": "macro.spark_utils.spark__datediff", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.505155}, "macro.spark_utils.spark__current_timestamp": {"unique_id": "macro.spark_utils.spark__current_timestamp", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5053492}, "macro.spark_utils.spark__current_timestamp_in_utc": {"unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5054212}, "macro.spark_utils.spark__split_part": {"unique_id": "macro.spark_utils.spark__split_part", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.506022}, "macro.spark_utils.spark__get_relations_by_pattern": {"unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.507555}, "macro.spark_utils.spark__get_relations_by_prefix": {"unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.507891}, "macro.spark_utils.spark__get_tables_by_pattern": {"unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.508161}, "macro.spark_utils.spark__get_tables_by_prefix": {"unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5084312}, "macro.spark_utils.assert_not_null": {"unique_id": "macro.spark_utils.assert_not_null", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.508804}, "macro.spark_utils.default__assert_not_null": {"unique_id": "macro.spark_utils.default__assert_not_null", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.509005}, "macro.spark_utils.spark__convert_timezone": {"unique_id": "macro.spark_utils.spark__convert_timezone", "package_name": "spark_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5092669}, "macro.fivetran_utils.enabled_vars": {"unique_id": "macro.fivetran_utils.enabled_vars", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.50971}, "macro.fivetran_utils.percentile": {"unique_id": "macro.fivetran_utils.percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__percentile"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5106182}, "macro.fivetran_utils.default__percentile": {"unique_id": "macro.fivetran_utils.default__percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.510785}, "macro.fivetran_utils.redshift__percentile": {"unique_id": "macro.fivetran_utils.redshift__percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.510943}, "macro.fivetran_utils.bigquery__percentile": {"unique_id": "macro.fivetran_utils.bigquery__percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5110981}, "macro.fivetran_utils.postgres__percentile": {"unique_id": "macro.fivetran_utils.postgres__percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.51124}, "macro.fivetran_utils.spark__percentile": {"unique_id": "macro.fivetran_utils.spark__percentile", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5113971}, "macro.fivetran_utils.pivot_json_extract": {"unique_id": "macro.fivetran_utils.pivot_json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "name": "pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.511869}, "macro.fivetran_utils.persist_pass_through_columns": {"unique_id": "macro.fivetran_utils.persist_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.512618}, "macro.fivetran_utils.json_parse": {"unique_id": "macro.fivetran_utils.json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5136771}, "macro.fivetran_utils.default__json_parse": {"unique_id": "macro.fivetran_utils.default__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.513931}, "macro.fivetran_utils.redshift__json_parse": {"unique_id": "macro.fivetran_utils.redshift__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5141811}, "macro.fivetran_utils.bigquery__json_parse": {"unique_id": "macro.fivetran_utils.bigquery__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5144162}, "macro.fivetran_utils.postgres__json_parse": {"unique_id": "macro.fivetran_utils.postgres__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5146508}, "macro.fivetran_utils.snowflake__json_parse": {"unique_id": "macro.fivetran_utils.snowflake__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.514911}, "macro.fivetran_utils.spark__json_parse": {"unique_id": "macro.fivetran_utils.spark__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.515171}, "macro.fivetran_utils.max_bool": {"unique_id": "macro.fivetran_utils.max_bool", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.515531}, "macro.fivetran_utils.default__max_bool": {"unique_id": "macro.fivetran_utils.default__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.51563}, "macro.fivetran_utils.snowflake__max_bool": {"unique_id": "macro.fivetran_utils.snowflake__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.515732}, "macro.fivetran_utils.bigquery__max_bool": {"unique_id": "macro.fivetran_utils.bigquery__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.515831}, "macro.fivetran_utils.calculated_fields": {"unique_id": "macro.fivetran_utils.calculated_fields", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.516244}, "macro.fivetran_utils.seed_data_helper": {"unique_id": "macro.fivetran_utils.seed_data_helper", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.516862}, "macro.fivetran_utils.fill_pass_through_columns": {"unique_id": "macro.fivetran_utils.fill_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "name": "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.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 {% endfor %}\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.517525}, "macro.fivetran_utils.string_agg": {"unique_id": "macro.fivetran_utils.string_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5180318}, "macro.fivetran_utils.default__string_agg": {"unique_id": "macro.fivetran_utils.default__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.518162}, "macro.fivetran_utils.snowflake__string_agg": {"unique_id": "macro.fivetran_utils.snowflake__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.518292}, "macro.fivetran_utils.redshift__string_agg": {"unique_id": "macro.fivetran_utils.redshift__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.518417}, "macro.fivetran_utils.spark__string_agg": {"unique_id": "macro.fivetran_utils.spark__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.518545}, "macro.fivetran_utils.timestamp_diff": {"unique_id": "macro.fivetran_utils.timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5212722}, "macro.fivetran_utils.default__timestamp_diff": {"unique_id": "macro.fivetran_utils.default__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.521434}, "macro.fivetran_utils.redshift__timestamp_diff": {"unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.521596}, "macro.fivetran_utils.bigquery__timestamp_diff": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.521751}, "macro.fivetran_utils.postgres__timestamp_diff": {"unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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_utils.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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.datediff"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.523437}, "macro.fivetran_utils.try_cast": {"unique_id": "macro.fivetran_utils.try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5242748}, "macro.fivetran_utils.default__safe_cast": {"unique_id": "macro.fivetran_utils.default__safe_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.524408}, "macro.fivetran_utils.redshift__try_cast": {"unique_id": "macro.fivetran_utils.redshift__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.524674}, "macro.fivetran_utils.postgres__try_cast": {"unique_id": "macro.fivetran_utils.postgres__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5249548}, "macro.fivetran_utils.snowflake__try_cast": {"unique_id": "macro.fivetran_utils.snowflake__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.525084}, "macro.fivetran_utils.bigquery__try_cast": {"unique_id": "macro.fivetran_utils.bigquery__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.525207}, "macro.fivetran_utils.spark__try_cast": {"unique_id": "macro.fivetran_utils.spark__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5253272}, "macro.fivetran_utils.source_relation": {"unique_id": "macro.fivetran_utils.source_relation", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.525841}, "macro.fivetran_utils.default__source_relation": {"unique_id": "macro.fivetran_utils.default__source_relation", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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_utils.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.526408}, "macro.fivetran_utils.first_value": {"unique_id": "macro.fivetran_utils.first_value", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.526929}, "macro.fivetran_utils.default__first_value": {"unique_id": "macro.fivetran_utils.default__first_value", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5271318}, "macro.fivetran_utils.redshift__first_value": {"unique_id": "macro.fivetran_utils.redshift__first_value", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5273511}, "macro.fivetran_utils.add_dbt_source_relation": {"unique_id": "macro.fivetran_utils.add_dbt_source_relation", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.527661}, "macro.fivetran_utils.add_pass_through_columns": {"unique_id": "macro.fivetran_utils.add_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "name": "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.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt_utils.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt_utils.type_string()}) %}\n \n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.528595}, "macro.fivetran_utils.union_relations": {"unique_id": "macro.fivetran_utils.union_relations", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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_utils.string_literal(relation) }} as {{ dbt_utils.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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils.string_literal", "macro.dbt_utils.type_string"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.532423}, "macro.fivetran_utils.union_tables": {"unique_id": "macro.fivetran_utils.union_tables", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.532777}, "macro.fivetran_utils.snowflake_seed_data": {"unique_id": "macro.fivetran_utils.snowflake_seed_data", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.533201}, "macro.fivetran_utils.fill_staging_columns": {"unique_id": "macro.fivetran_utils.fill_staging_columns", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.534733}, "macro.fivetran_utils.quote_column": {"unique_id": "macro.fivetran_utils.quote_column", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark') %}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.535272}, "macro.fivetran_utils.json_extract": {"unique_id": "macro.fivetran_utils.json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.535852}, "macro.fivetran_utils.default__json_extract": {"unique_id": "macro.fivetran_utils.default__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5360022}, "macro.fivetran_utils.snowflake__json_extract": {"unique_id": "macro.fivetran_utils.snowflake__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.536151}, "macro.fivetran_utils.redshift__json_extract": {"unique_id": "macro.fivetran_utils.redshift__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.536318}, "macro.fivetran_utils.bigquery__json_extract": {"unique_id": "macro.fivetran_utils.bigquery__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.536469}, "macro.fivetran_utils.postgres__json_extract": {"unique_id": "macro.fivetran_utils.postgres__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5366158}, "macro.fivetran_utils.collect_freshness": {"unique_id": "macro.fivetran_utils.collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.537326}, "macro.fivetran_utils.default__collect_freshness": {"unique_id": "macro.fivetran_utils.default__collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.538292}, "macro.fivetran_utils.timestamp_add": {"unique_id": "macro.fivetran_utils.timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.bigquery__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.538989}, "macro.fivetran_utils.default__timestamp_add": {"unique_id": "macro.fivetran_utils.default__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.53915}, "macro.fivetran_utils.bigquery__timestamp_add": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.539306}, "macro.fivetran_utils.redshift__timestamp_add": {"unique_id": "macro.fivetran_utils.redshift__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.539469}, "macro.fivetran_utils.postgres__timestamp_add": {"unique_id": "macro.fivetran_utils.postgres__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5396202}, "macro.fivetran_utils.spark__timestamp_add": {"unique_id": "macro.fivetran_utils.spark__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt_utils.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.539787}, "macro.fivetran_utils.ceiling": {"unique_id": "macro.fivetran_utils.ceiling", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.540084}, "macro.fivetran_utils.default__ceiling": {"unique_id": "macro.fivetran_utils.default__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5402439}, "macro.fivetran_utils.snowflake__ceiling": {"unique_id": "macro.fivetran_utils.snowflake__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.540343}, "macro.fivetran_utils.remove_prefix_from_columns": {"unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.541009}, "macro.fivetran_utils.union_data": {"unique_id": "macro.fivetran_utils.union_data", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.542203}, "macro.fivetran_utils.default__union_data": {"unique_id": "macro.fivetran_utils.default__union_data", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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\n {% set relation=adapter.get_relation(\n database=var(database_variable, default_database),\n schema=schema,\n identifier=table_identifier\n ) -%}\n \n {% set relation_exists=relation is not none %}\n\n {% if relation_exists %}\n\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% elif var(union_database_variable, none) %}\n\n {% set relations = [] %}\n\n {% for database in var(union_database_variable) %}\n\n {% set relation=adapter.get_relation(\n database=database,\n schema=var(schema_variable, default_schema),\n identifier=table_identifier\n ) -%}\n\n {% set relation_exists=relation is not none %}\n\n {% if relation_exists %}\n\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% else %}\n\n select * \n from {{ var(default_variable) }}\n\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5439181}, "macro.fivetran_utils.dummy_coalesce_value": {"unique_id": "macro.fivetran_utils.dummy_coalesce_value", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.545324}, "macro.fivetran_utils.array_agg": {"unique_id": "macro.fivetran_utils.array_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.545632}, "macro.fivetran_utils.default__array_agg": {"unique_id": "macro.fivetran_utils.default__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.5457332}, "macro.fivetran_utils.redshift__array_agg": {"unique_id": "macro.fivetran_utils.redshift__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.545829}, "macro.fivetran_utils.empty_variable_warning": {"unique_id": "macro.fivetran_utils.empty_variable_warning", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.546262}, "macro.fivetran_utils.enabled_vars_one_true": {"unique_id": "macro.fivetran_utils.enabled_vars_one_true", "package_name": "fivetran_utils", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true}, "patch_path": null, "arguments": [], "created_at": 1665703194.546696}}, "docs": {"dbt.__overview__": {"unique_id": "dbt.__overview__", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-bigquery/1.2.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "overview.md", "original_file_path": "docs/overview.md", "name": "__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"}, "shopify_source._fivetran_synced": {"unique_id": "shopify_source._fivetran_synced", "package_name": "shopify_source", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "docs.md", "original_file_path": "models/docs.md", "name": "_fivetran_synced", "block_contents": "The time when a record was last updated by Fivetran."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {"seed.shopify_holistic_reporting_integration_tests.flow_snowflake": [{"raw_sql": "", "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "dbt-package-testing", "schema": "dbt_test", "fqn": ["shopify_holistic_reporting_integration_tests", "flow_snowflake"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow_snowflake", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/jamie.rodriguez/Desktop/dbt_repos/dbt_shopify_holistic_reporting/integration_tests", "path": "flow_snowflake.csv", "original_file_path": "seeds/flow_snowflake.csv", "name": "flow_snowflake", "alias": "flow_snowflake", "checksum": {"name": "sha256", "checksum": "6bdc1fd92ee1a5bd818f2c9dc35cb33e0b4549d4d0b325569e0518843ce02711"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}, "enabled": "{{ true if target.type == 'snowflake' else false }}"}, "created_at": 1665703194.814602, "config_call_dict": {}}]}, "parent_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": [], "seed.shopify_holistic_reporting_integration_tests.flow": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": [], "seed.shopify_holistic_reporting_integration_tests.integration": [], "seed.shopify_holistic_reporting_integration_tests.metric": [], "seed.shopify_holistic_reporting_integration_tests.person": [], "seed.shopify_holistic_reporting_integration_tests.event": [], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": [], "seed.shopify_holistic_reporting_integration_tests.campaign": [], "model.shopify_source.stg_shopify__order_line": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"], "model.shopify_source.stg_shopify__refund": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"], "model.shopify_source.stg_shopify__product": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"], "model.shopify_source.stg_shopify__order": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"], "model.shopify_source.stg_shopify__transaction": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"], "model.shopify_source.stg_shopify__customer": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"], "model.shopify_source.stg_shopify__customer_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"], "model.shopify_source.stg_shopify__order_line_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"], "model.shopify_source.stg_shopify__refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"], "model.shopify_source.stg_shopify__product_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"], "model.shopify_source.stg_shopify__transaction_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"], "model.shopify_source.stg_shopify__product_variant_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"], "model.shopify_source.stg_shopify__order_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["seed.shopify_holistic_reporting_integration_tests.event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["seed.shopify_holistic_reporting_integration_tests.metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["seed.shopify_holistic_reporting_integration_tests.campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["seed.shopify_holistic_reporting_integration_tests.integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["seed.shopify_holistic_reporting_integration_tests.flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["seed.shopify_holistic_reporting_integration_tests.person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.klaviyo__events"], "model.klaviyo.klaviyo__persons": ["model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__flows": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo.klaviyo__campaigns": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo.klaviyo__events": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo_source.stg_klaviyo__event"], "model.shopify.shopify__customer_cohorts": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"], "model.shopify.shopify__orders": ["model.shopify.shopify__orders__order_line_aggregates", "model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify.shopify__products": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders", "model.shopify_source.stg_shopify__product"], "model.shopify.shopify__transactions": ["model.shopify_source.stg_shopify__transaction"], "model.shopify.shopify__customers": ["model.shopify.shopify__customers__order_aggregates", "model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant"], "model.shopify.shopify__calendar": [], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify_source.stg_shopify__order_line"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__transactions", "model.shopify_source.stg_shopify__order"], "model.shopify.shopify__orders__order_refunds": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.klaviyo.klaviyo__events", "model.shopify.shopify__orders", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify.shopify__order_lines", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.klaviyo.klaviyo__events"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": ["model.shopify_source.stg_shopify__customer"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": ["model.shopify_source.stg_shopify__order_line_refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": ["model.shopify_source.stg_shopify__order_line"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": ["model.shopify_source.stg_shopify__order"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": ["model.shopify_source.stg_shopify__product"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": ["model.shopify_source.stg_shopify__product_variant"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": ["model.shopify_source.stg_shopify__transaction"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": ["model.shopify_source.stg_shopify__refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": ["model.shopify_source.stg_shopify__order_adjustment"], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": ["model.klaviyo.klaviyo__events"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": ["model.klaviyo.klaviyo__events"], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": ["model.klaviyo.int_klaviyo__person_metrics"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": ["model.klaviyo.int_klaviyo__person_metrics"], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": ["model.shopify.shopify__customer_cohorts"], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": ["model.shopify.shopify__customer_cohorts"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": ["model.shopify.shopify__orders"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": ["model.shopify.shopify__customers"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": ["model.shopify.shopify__products"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": ["model.shopify.shopify__order_lines"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": ["model.shopify.shopify__transactions"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": ["model.shopify.shopify__customers__order_aggregates"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": ["model.shopify.shopify__orders__order_line_aggregates"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}, "child_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": ["model.shopify_source.stg_shopify__order_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": ["model.shopify_source.stg_shopify__order_line_refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": ["model.shopify_source.stg_shopify__order_adjustment_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": ["model.shopify_source.stg_shopify__product_variant_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": ["model.shopify_source.stg_shopify__refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": ["model.shopify_source.stg_shopify__transaction_tmp"], "seed.shopify_holistic_reporting_integration_tests.flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": ["model.shopify_source.stg_shopify__product_tmp"], "seed.shopify_holistic_reporting_integration_tests.integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp"], "seed.shopify_holistic_reporting_integration_tests.metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp"], "seed.shopify_holistic_reporting_integration_tests.person": ["model.klaviyo_source.stg_klaviyo__person_tmp"], "seed.shopify_holistic_reporting_integration_tests.event": ["model.klaviyo_source.stg_klaviyo__event_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": ["model.shopify_source.stg_shopify__customer_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": ["model.shopify_source.stg_shopify__order_line_tmp"], "seed.shopify_holistic_reporting_integration_tests.campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.shopify_source.stg_shopify__order_line": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders__order_line_aggregates", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"], "model.shopify_source.stg_shopify__refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"], "model.shopify_source.stg_shopify__product": ["model.shopify.shopify__products", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify.shopify__order_lines", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"], "model.shopify_source.stg_shopify__order": ["model.shopify.shopify__customers__order_aggregates", "model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"], "model.shopify_source.stg_shopify__transaction": ["model.shopify.shopify__transactions", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"], "model.shopify_source.stg_shopify__customer": ["model.shopify.shopify__customers", "model.shopify.shopify__customers", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"], "model.shopify_source.stg_shopify__customer_tmp": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify_source.stg_shopify__order_line_tmp": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__order_line"], "model.shopify_source.stg_shopify__refund_tmp": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_source.stg_shopify__product_tmp": ["model.shopify_source.stg_shopify__product", "model.shopify_source.stg_shopify__product"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["model.shopify_source.stg_shopify__order_adjustment", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__order_line_refund"], "model.shopify_source.stg_shopify__transaction_tmp": ["model.shopify_source.stg_shopify__transaction", "model.shopify_source.stg_shopify__transaction"], "model.shopify_source.stg_shopify__product_variant_tmp": ["model.shopify_source.stg_shopify__product_variant", "model.shopify_source.stg_shopify__product_variant"], "model.shopify_source.stg_shopify__order_tmp": ["model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__persons", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__flows", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo.int_klaviyo__event_attribution", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["model.klaviyo_source.stg_klaviyo__event", "model.klaviyo_source.stg_klaviyo__event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"], "model.klaviyo.klaviyo__persons": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"], "model.klaviyo.klaviyo__flows": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"], "model.klaviyo.klaviyo__campaigns": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"], "model.klaviyo.klaviyo__events": ["model.klaviyo.klaviyo__person_campaign_flow", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__flows", "model.klaviyo.klaviyo__flows", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__events", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"], "model.shopify.shopify__customer_cohorts": ["test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"], "model.shopify.shopify__orders": ["model.shopify.shopify__customer_cohorts", "model.shopify.shopify__products", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"], "model.shopify.shopify__products": ["test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"], "model.shopify.shopify__transactions": ["model.shopify.shopify__customers__order_aggregates", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"], "model.shopify.shopify__customers": ["model.shopify.shopify__customer_cohorts", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__products", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"], "model.shopify.shopify__calendar": ["model.shopify.shopify__customer_cohorts"], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify.shopify__orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__customers", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"], "model.shopify.shopify__orders__order_refunds": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": [], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": [], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": [], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": [], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": [], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": [], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": [], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": [], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": [], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": [], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": [], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": [], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": [], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": [], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": [], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": [], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": [], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": [], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": [], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": [], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v7.json", "dbt_version": "1.3.0", "generated_at": "2022-10-28T17:31:56.730889Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}, "project_id": "0d919ec91381ade1c67705291b214e1c", "user_id": "81581f81-d5af-4143-8fbf-c2f0001e4f56", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "id": "bigint", "customer_id": "bigint", "location_id": "bigint", "user_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_data.csv", "original_file_path": "seeds/shopify_order_data.csv", "name": "shopify_order_data", "alias": "shopify_order_data", "checksum": {"name": "sha256", "checksum": "4d0dd043a886a0d9e7680e7ee2cd132717490f75d3a06fe7c38956d901976146"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "customer_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.6470258, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "location_id": "bigint", "refund_id": "bigint", "order_line_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_refund_data.csv", "original_file_path": "seeds/shopify_order_line_refund_data.csv", "name": "shopify_order_line_refund_data", "alias": "shopify_order_line_refund_data", "checksum": {"name": "sha256", "checksum": "0564bef778890f3e086e4057b2536aaa6cfeceb2f9c9bd95f44d4b9f04a33dc6"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_line_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.655862, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_adjustment_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_adjustment_data.csv", "original_file_path": "seeds/shopify_order_adjustment_data.csv", "name": "shopify_order_adjustment_data", "alias": "shopify_order_adjustment_data", "checksum": {"name": "sha256", "checksum": "48ce96540f19450088c661fd48bd8f6d58bb4ca13a1f048880e9984be367172e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.657533, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_adjustment_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "product_id": "bigint", "inventory_item_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_variant_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_variant_data.csv", "original_file_path": "seeds/shopify_product_variant_data.csv", "name": "shopify_product_variant_data", "alias": "shopify_product_variant_data", "checksum": {"name": "sha256", "checksum": "3430f8a8a9139a753a727caa7e10ac2ac02c4e2683a37ed933566367d2f6200e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "inventory_item_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.659572, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_variant_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "user_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_refund_data.csv", "original_file_path": "seeds/shopify_refund_data.csv", "name": "shopify_refund_data", "alias": "shopify_refund_data", "checksum": {"name": "sha256", "checksum": "8d8bc98681d9b0d57a43af3fc99ff13cc42401d97e49bba41c1fafb28f858d23"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.6612291, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_id": "bigint", "receipt": "varchar(100)"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_transaction_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_transaction_data.csv", "original_file_path": "seeds/shopify_transaction_data.csv", "name": "shopify_transaction_data", "alias": "shopify_transaction_data", "checksum": {"name": "sha256", "checksum": "def7b7fc64e42148b900dcd1f7327b470e5d3b0ed8e73f263e46a715ecb09199"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "receipt": "{{ 'varchar(100)' if target.name in ('redshift', 'postgres') else 'string' }}"}}, "created_at": 1666978249.662853, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_transaction_data\""}, "seed.shopify_holistic_reporting_integration_tests.flow": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "trigger": "varchar"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "flow"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow.csv", "original_file_path": "seeds/flow.csv", "name": "flow", "alias": "flow", "checksum": {"name": "sha256", "checksum": "8a59e1c986a7509b15603761cb0225587bd8db8ae81ee0b146ca821be8103627"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type == 'redshift' else false }}", "column_types": {"trigger": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}, "enabled": "{{ true if target.type != 'snowflake' else false }}"}, "created_at": 1666978249.666206, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"flow\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_data.csv", "original_file_path": "seeds/shopify_product_data.csv", "name": "shopify_product_data", "alias": "shopify_product_data", "checksum": {"name": "sha256", "checksum": "5cc03f90512ac04a6526220040085e4e0488b62ef22e8b201424c7d7cf1bf847"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.668143, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_data\""}, "seed.shopify_holistic_reporting_integration_tests.integration": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "integration"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "integration.csv", "original_file_path": "seeds/integration.csv", "name": "integration", "alias": "integration", "checksum": {"name": "sha256", "checksum": "7d65e88ffe7faca2f24289441001007cc8222d5bb8f788c2807072bd7bb0b022"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.670136, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"integration\""}, "seed.shopify_holistic_reporting_integration_tests.metric": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "metric"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "metric.csv", "original_file_path": "seeds/metric.csv", "name": "metric", "alias": "metric", "checksum": {"name": "sha256", "checksum": "155dde6f21d4cf0d8d11b898b4c1f310c2ffbe44c897aaacd5dd31a607bd447a"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.671916, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"metric\""}, "seed.shopify_holistic_reporting_integration_tests.person": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "phone_number": "varchar"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "person"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.person", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "person.csv", "original_file_path": "seeds/person.csv", "name": "person", "alias": "person", "checksum": {"name": "sha256", "checksum": "6f915292a8aba951a356baacc8e65fac88b0a28e98d6cff84f708aeaf68d9ceb"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"phone_number": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1666978249.673671, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"person\""}, "seed.shopify_holistic_reporting_integration_tests.event": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "flow_id": "varchar", "campaign_id": "varchar"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "event"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.event", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "event.csv", "original_file_path": "seeds/event.csv", "name": "event", "alias": "event", "checksum": {"name": "sha256", "checksum": "fb7883912895ceb24123ecd1e37c8cd3d8e837493d1ed2007fd64daf45a8581c"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"flow_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}", "campaign_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1666978249.675307, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"event\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "id": "bigint", "default_address_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_customer_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_customer_data.csv", "original_file_path": "seeds/shopify_customer_data.csv", "name": "shopify_customer_data", "alias": "shopify_customer_data", "checksum": {"name": "sha256", "checksum": "79bc0a5972c321cefe2973acdd443ce1d42e36b3b23b2298151046d23bdf4bea"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "default_address_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.676883, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_customer_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "order_id": "bigint", "id": "bigint", "product_id": "bigint", "variant_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_data.csv", "original_file_path": "seeds/shopify_order_line_data.csv", "name": "shopify_order_line_data", "alias": "shopify_order_line_data", "checksum": {"name": "sha256", "checksum": "cabaa49c9bd299b34eb2154893a6dd399fbbad7e4ad7036293c8b4cb599199e0"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "variant_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.679014, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_data\""}, "seed.shopify_holistic_reporting_integration_tests.campaign": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "campaign"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "campaign.csv", "original_file_path": "seeds/campaign.csv", "name": "campaign", "alias": "campaign", "checksum": {"name": "sha256", "checksum": "e80312165b7d9198633569c5c50aaaf7e73df74dff2d46600adca3fef4b8dd43"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.680992, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"campaign\""}, "model.shopify_source.stg_shopify__order_line": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line"], "unique_id": "model.shopify_source.stg_shopify__order_line", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_line_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_tmp')),\n staging_columns=get_order_line_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_pass_through_columns') %}\n ,\n {{ var('order_line_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line.sql", "original_file_path": "models/stg_shopify__order_line.sql", "name": "stg_shopify__order_line", "alias": "stg_shopify__order_line", "checksum": {"name": "sha256", "checksum": "bb641f0d784534dc9d6d86bda3391b7c905b0a739c6cf34ef60e4716b5fd86ce"}, "tags": [], "refs": [["stg_shopify__order_line_tmp"], ["stg_shopify__order_line_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.45019, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n fulfillable_quantity\n \n as \n \n fulfillable_quantity\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n gift_card\n \n as is_gift_card , \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n id\n \n as order_line_id , \n \n \n index\n \n as \n \n index\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n pre_tax_price\n \n as \n \n pre_tax_price\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n product_id\n \n as \n \n product_id\n \n, \n cast(null as numeric(28,6)) as \n \n property_charge_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_for_shipping_jan_3_rd_2020\n \n , \n cast(null as numeric(28,6)) as \n \n property_shipping_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_shipping_interval_unit_type\n \n , \n cast(null as numeric(28,6)) as \n \n property_subscription_id\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping , \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n title\n \n as \n \n title\n \n, \n \n \n total_discount\n \n as \n \n total_discount\n \n, \n \n \n variant_id\n \n as \n \n variant_id\n \n, \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\""}, "model.shopify_source.stg_shopify__refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__refund"], "unique_id": "model.shopify_source.stg_shopify__refund", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__refund.sql", "original_file_path": "models/stg_shopify__refund.sql", "name": "stg_shopify__refund", "alias": "stg_shopify__refund", "checksum": {"name": "sha256", "checksum": "db92848ca19e65385f44b51e662bc9a3c773fecefe896cbddd1f23d22d078e82"}, "tags": [], "refs": [["stg_shopify__refund_tmp"], ["stg_shopify__refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a refund within Shopify.", "columns": {"refund_id": {"name": "refund_id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.4813929, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as \n \n created_at\n \n, \n \n \n id\n \n as refund_id , \n \n \n note\n \n as \n \n note\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n processed_at\n \n as \n \n processed_at\n \n, \n \n \n restock\n \n as \n \n restock\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\""}, "model.shopify_source.stg_shopify__product": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product"], "unique_id": "model.shopify_source.stg_shopify__product", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_pass_through_columns') %}\n ,\n {{ var('product_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product.sql", "original_file_path": "models/stg_shopify__product.sql", "name": "stg_shopify__product", "alias": "stg_shopify__product", "checksum": {"name": "sha256", "checksum": "dd30ab5bbf28fc246f4d4625c8057bd05f59c9e8f115d8c72f301b22236b59eb"}, "tags": [], "refs": [["stg_shopify__product_tmp"], ["stg_shopify__product_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.4667342, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n handle\n \n as \n \n handle\n \n, \n \n \n id\n \n as product_id , \n \n \n product_type\n \n as \n \n product_type\n \n, \n \n \n published_at\n \n as published_timestamp , \n \n \n published_scope\n \n as \n \n published_scope\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\""}, "model.shopify_source.stg_shopify__product_variant": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_variant_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product_variant"], "unique_id": "model.shopify_source.stg_shopify__product_variant", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_variant_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_variant_tmp')),\n staging_columns=get_product_variant_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_variant_pass_through_columns') %}\n ,\n {{ var('product_variant_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product_variant.sql", "original_file_path": "models/stg_shopify__product_variant.sql", "name": "stg_shopify__product_variant", "alias": "stg_shopify__product_variant", "checksum": {"name": "sha256", "checksum": "6d09962a9153df0f1b3220ecfe3ecd87997d5e5b87187a985a7c25006ca8b229"}, "tags": [], "refs": [["stg_shopify__product_variant_tmp"], ["stg_shopify__product_variant_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product_variant.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.472289, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as variant_id , \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n product_id\n \n as \n \n product_id\n \n, \n \n \n inventory_item_id\n \n as \n \n inventory_item_id\n \n, \n \n \n image_id\n \n as \n \n image_id\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n position\n \n as \n \n position\n \n, \n \n \n inventory_policy\n \n as \n \n inventory_policy\n \n, \n \n \n compare_at_price\n \n as \n \n compare_at_price\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n inventory_management\n \n as \n \n inventory_management\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n barcode\n \n as \n \n barcode\n \n, \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n inventory_quantity\n \n as \n \n inventory_quantity\n \n, \n \n \n weight\n \n as \n \n weight\n \n, \n \n \n weight_unit\n \n as \n \n weight_unit\n \n, \n \n \n option_1\n \n as \n \n option_1\n \n, \n \n \n option_2\n \n as \n \n option_2\n \n, \n \n \n option_3\n \n as \n \n option_3\n \n, \n \n \n tax_code\n \n as \n \n tax_code\n \n, \n \n \n old_inventory_quantity\n \n as \n \n old_inventory_quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\""}, "model.shopify_source.stg_shopify__order": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order"], "unique_id": "model.shopify_source.stg_shopify__order", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_tmp')),\n staging_columns=get_order_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_pass_through_columns') %}\n ,\n {{ var('order_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order.sql", "original_file_path": "models/stg_shopify__order.sql", "name": "stg_shopify__order", "alias": "stg_shopify__order", "checksum": {"name": "sha256", "checksum": "a4b7cdee44f261fe11e487f1022c1f7bd57196220a453bff382c1876ee5a2192"}, "tags": [], "refs": [["stg_shopify__order_tmp"], ["stg_shopify__order_tmp"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.464277, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as order_id , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n total_discounts\n \n as \n \n total_discounts\n \n, \n \n \n total_line_items_price\n \n as \n \n total_line_items_price\n \n, \n \n \n total_price\n \n as \n \n total_price\n \n, \n \n \n total_tax\n \n as \n \n total_tax\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n subtotal_price\n \n as \n \n subtotal_price\n \n, \n \n \n taxes_included\n \n as has_taxes_included , \n \n \n total_weight\n \n as \n \n total_weight\n \n, \n \n \n landing_site_base_url\n \n as \n \n landing_site_base_url\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n note\n \n as \n \n note\n \n, \n \n \n number\n \n as \n \n number\n \n, \n \n \n order_number\n \n as \n \n order_number\n \n, \n \n \n cancel_reason\n \n as \n \n cancel_reason\n \n, \n \n \n cancelled_at\n \n as cancelled_timestamp , \n \n \n cart_token\n \n as \n \n cart_token\n \n, \n \n \n checkout_token\n \n as \n \n checkout_token\n \n, \n \n \n closed_at\n \n as closed_timestamp , \n \n \n created_at\n \n as created_timestamp , \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n customer_id\n \n as \n \n customer_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n financial_status\n \n as \n \n financial_status\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n processing_method\n \n as \n \n processing_method\n \n, \n \n \n referring_site\n \n as \n \n referring_site\n \n, \n \n \n billing_address_address_1\n \n as \n \n billing_address_address_1\n \n, \n \n \n billing_address_address_2\n \n as \n \n billing_address_address_2\n \n, \n \n \n billing_address_city\n \n as \n \n billing_address_city\n \n, \n \n \n billing_address_company\n \n as \n \n billing_address_company\n \n, \n \n \n billing_address_country\n \n as \n \n billing_address_country\n \n, \n \n \n billing_address_country_code\n \n as \n \n billing_address_country_code\n \n, \n \n \n billing_address_first_name\n \n as \n \n billing_address_first_name\n \n, \n \n \n billing_address_last_name\n \n as \n \n billing_address_last_name\n \n, \n \n \n billing_address_latitude\n \n as \n \n billing_address_latitude\n \n, \n \n \n billing_address_longitude\n \n as \n \n billing_address_longitude\n \n, \n \n \n billing_address_name\n \n as \n \n billing_address_name\n \n, \n \n \n billing_address_phone\n \n as \n \n billing_address_phone\n \n, \n \n \n billing_address_province\n \n as \n \n billing_address_province\n \n, \n \n \n billing_address_province_code\n \n as \n \n billing_address_province_code\n \n, \n \n \n billing_address_zip\n \n as \n \n billing_address_zip\n \n, \n \n \n browser_ip\n \n as \n \n browser_ip\n \n, \n \n \n buyer_accepts_marketing\n \n as has_buyer_accepted_marketing , \n cast(null as TEXT) as \n \n total_shipping_price_set\n \n , \n \n \n shipping_address_address_1\n \n as \n \n shipping_address_address_1\n \n, \n \n \n shipping_address_address_2\n \n as \n \n shipping_address_address_2\n \n, \n \n \n shipping_address_city\n \n as \n \n shipping_address_city\n \n, \n \n \n shipping_address_company\n \n as \n \n shipping_address_company\n \n, \n \n \n shipping_address_country\n \n as \n \n shipping_address_country\n \n, \n \n \n shipping_address_country_code\n \n as \n \n shipping_address_country_code\n \n, \n \n \n shipping_address_first_name\n \n as \n \n shipping_address_first_name\n \n, \n \n \n shipping_address_last_name\n \n as \n \n shipping_address_last_name\n \n, \n \n \n shipping_address_latitude\n \n as \n \n shipping_address_latitude\n \n, \n \n \n shipping_address_longitude\n \n as \n \n shipping_address_longitude\n \n, \n \n \n shipping_address_name\n \n as \n \n shipping_address_name\n \n, \n \n \n shipping_address_phone\n \n as \n \n shipping_address_phone\n \n, \n \n \n shipping_address_province\n \n as \n \n shipping_address_province\n \n, \n \n \n shipping_address_province_code\n \n as \n \n shipping_address_province_code\n \n, \n \n \n shipping_address_zip\n \n as \n \n shipping_address_zip\n \n, \n \n \n test\n \n as is_test_order , \n \n \n token\n \n as \n \n token\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\""}, "model.shopify_source.stg_shopify__transaction": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__transaction"], "unique_id": "model.shopify_source.stg_shopify__transaction", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__transaction_tmp') }}\n\n),\n\nrenamed as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__transaction_tmp')),\n staging_columns=get_transaction_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('transaction_pass_through_columns') %}\n ,\n {{ var('transaction_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n where not test\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__transaction.sql", "original_file_path": "models/stg_shopify__transaction.sql", "name": "stg_shopify__transaction", "alias": "stg_shopify__transaction", "checksum": {"name": "sha256", "checksum": "b837eb0c1661d2817ccb6a1c3123e7d146dbbd9a63ea1fe0ad52ba8a1742ecbe"}, "tags": [], "refs": [["stg_shopify__transaction_tmp"], ["stg_shopify__transaction_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__transaction.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.47908, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction_tmp\"\n\n),\n\nrenamed as (\n\n select\n\n \n \n \n id\n \n as transaction_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n device_id\n \n as \n \n device_id\n \n, \n \n \n gateway\n \n as \n \n gateway\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n message\n \n as \n \n message\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n parent_id\n \n as \n \n parent_id\n \n, \n \n \n payment_avs_result_code\n \n as \n \n payment_avs_result_code\n \n, \n \n \n payment_credit_card_bin\n \n as \n \n payment_credit_card_bin\n \n, \n \n \n payment_cvv_result_code\n \n as \n \n payment_cvv_result_code\n \n, \n \n \n payment_credit_card_number\n \n as \n \n payment_credit_card_number\n \n, \n \n \n payment_credit_card_company\n \n as \n \n payment_credit_card_company\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n receipt\n \n as \n \n receipt\n \n, \n \n \n currency_exchange_id\n \n as \n \n currency_exchange_id\n \n, \n \n \n currency_exchange_adjustment\n \n as \n \n currency_exchange_adjustment\n \n, \n \n \n currency_exchange_original_amount\n \n as \n \n currency_exchange_original_amount\n \n, \n \n \n currency_exchange_final_amount\n \n as \n \n currency_exchange_final_amount\n \n, \n \n \n currency_exchange_currency\n \n as \n \n currency_exchange_currency\n \n, \n \n \n error_code\n \n as \n \n error_code\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n test\n \n as \n \n test\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n \n \n \"authorization\"\n \n \n \n as authorization \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n where not test\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\""}, "model.shopify_source.stg_shopify__order_adjustment": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_adjustment_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_adjustment"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__order_adjustment_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_adjustment_tmp')),\n staging_columns=get_order_adjustment_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_adjustment.sql", "original_file_path": "models/stg_shopify__order_adjustment.sql", "name": "stg_shopify__order_adjustment", "alias": "stg_shopify__order_adjustment", "checksum": {"name": "sha256", "checksum": "b494a4c88cf235fb0b11c020d004bcf0904e9d1ae235144330d3d24b37ad4318"}, "tags": [], "refs": [["stg_shopify__order_adjustment_tmp"], ["stg_shopify__order_adjustment_tmp"]], "sources": [], "metrics": [], "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"order_adjustment_id": {"name": "order_adjustment_id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_adjustment.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.483711, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n id\n \n as order_adjustment_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n tax_amount\n \n as \n \n tax_amount\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n reason\n \n as \n \n reason\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\""}, "model.shopify_source.stg_shopify__customer": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__customer"], "unique_id": "model.shopify_source.stg_shopify__customer", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__customer_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('customer_pass_through_columns') %}\n ,\n {{ var('customer_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__customer.sql", "original_file_path": "models/stg_shopify__customer.sql", "name": "stg_shopify__customer", "alias": "stg_shopify__customer", "checksum": {"name": "sha256", "checksum": "e43df3b376bae7b581cfb9514f59c82263bbba83447e9bd440a214e8c2dca709"}, "tags": [], "refs": [["stg_shopify__customer_tmp"], ["stg_shopify__customer_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__customer.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.4438999, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n accepts_marketing\n \n as has_accepted_marketing , \n \n \n created_at\n \n as created_timestamp , \n \n \n default_address_id\n \n as \n \n default_address_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as customer_id , \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n orders_count\n \n as \n \n orders_count\n \n, \n \n \n phone\n \n as \n \n phone\n \n, \n \n \n state\n \n as account_state , \n \n \n tax_exempt\n \n as is_tax_exempt , \n \n \n total_spent\n \n as \n \n total_spent\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n verified_email\n \n as is_verified_email \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\""}, "model.shopify_source.stg_shopify__order_line_refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line_refund"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\nwith source as (\n\n select * from {{ ref('stg_shopify__order_line_refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_refund_tmp')),\n staging_columns=get_order_line_refund_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_refund_pass_through_columns') %}\n ,\n {{ var('order_line_refund_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line_refund.sql", "original_file_path": "models/stg_shopify__order_line_refund.sql", "name": "stg_shopify__order_line_refund", "alias": "stg_shopify__order_line_refund", "checksum": {"name": "sha256", "checksum": "0d7b02b07f95694dd5358ec919659f16bdccf708f906546b99f448355b1253cd"}, "tags": [], "refs": [["stg_shopify__order_line_refund_tmp"], ["stg_shopify__order_line_refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_refund_id": {"name": "order_line_refund_id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line_refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.4461288, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n id\n \n as order_line_refund_id , \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n order_line_id\n \n as \n \n order_line_id\n \n, \n cast(null as numeric(28,6)) as \n \n subtotal\n \n , \n cast(null as numeric(28,6)) as \n \n total_tax\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n restock_type\n \n as \n \n restock_type\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\""}, "model.shopify_source.stg_shopify__customer_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__customer_tmp"], "unique_id": "model.shopify_source.stg_shopify__customer_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='customer', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='customer_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__customer_tmp.sql", "original_file_path": "models/tmp/stg_shopify__customer_tmp.sql", "name": "stg_shopify__customer_tmp", "alias": "stg_shopify__customer_tmp", "checksum": {"name": "sha256", "checksum": "1f896e84164292f48db1c4eddfd6b3afef9ce4661ad2ab160c8721c8e620026c"}, "tags": [], "refs": [["shopify_customer_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__customer_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9227352, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_customer_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer_tmp\""}, "model.shopify_source.stg_shopify__order_line_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order_line', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_tmp.sql", "name": "stg_shopify__order_line_tmp", "alias": "stg_shopify__order_line_tmp", "checksum": {"name": "sha256", "checksum": "778359b2c17590b95d7b5709bfdd28b50d323b905e4277c74203416f08ee458e"}, "tags": [], "refs": [["shopify_order_line_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.94085, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_tmp\""}, "model.shopify_source.stg_shopify__refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__refund_tmp", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__refund_tmp.sql", "name": "stg_shopify__refund_tmp", "alias": "stg_shopify__refund_tmp", "checksum": {"name": "sha256", "checksum": "2bcf1d64f126acc4d271984df2b6332286bf10a7345962f7037c391d8ecdbdbd"}, "tags": [], "refs": [["shopify_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9462929, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund_tmp\""}, "model.shopify_source.stg_shopify__product_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_tmp.sql", "name": "stg_shopify__product_tmp", "alias": "stg_shopify__product_tmp", "checksum": {"name": "sha256", "checksum": "4c88fa0dabe17fa99b7509af7b3518c844df1747e28e6c7ac4f0a8262424e91a"}, "tags": [], "refs": [["shopify_product_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.952102, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_tmp\""}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_adjustment_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_adjustment', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_adjustment_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_adjustment_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_adjustment_tmp.sql", "name": "stg_shopify__order_adjustment_tmp", "alias": "stg_shopify__order_adjustment_tmp", "checksum": {"name": "sha256", "checksum": "e3d5e7ba5a680437560ef21796b014718c45d20c52fbf4ac950d8eb687348d96"}, "tags": [], "refs": [["shopify_order_adjustment_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_adjustment_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9577842, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_adjustment_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment_tmp\""}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_line_refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_refund_tmp.sql", "name": "stg_shopify__order_line_refund_tmp", "alias": "stg_shopify__order_line_refund_tmp", "checksum": {"name": "sha256", "checksum": "33bb981405f33c32bbe9c2107a9ba93fd70b9e59578befc3c9e7f78a68c27eb2"}, "tags": [], "refs": [["shopify_order_line_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9639528, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund_tmp\""}, "model.shopify_source.stg_shopify__transaction_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__transaction_tmp"], "unique_id": "model.shopify_source.stg_shopify__transaction_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='transaction', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='transaction_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__transaction_tmp.sql", "original_file_path": "models/tmp/stg_shopify__transaction_tmp.sql", "name": "stg_shopify__transaction_tmp", "alias": "stg_shopify__transaction_tmp", "checksum": {"name": "sha256", "checksum": "9a4cf0c7a2495c01fd10f0d88655aaffe63ef8b3cc94883e10507b034285f978"}, "tags": [], "refs": [["shopify_transaction_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__transaction_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.970769, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_transaction_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction_tmp\""}, "model.shopify_source.stg_shopify__product_variant_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_variant_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product_variant', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_variant_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_variant_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_variant_tmp.sql", "name": "stg_shopify__product_variant_tmp", "alias": "stg_shopify__product_variant_tmp", "checksum": {"name": "sha256", "checksum": "cbb9a84c332f17d90ad953536a449714fac6f77f871da604d43ffb846f6d5621"}, "tags": [], "refs": [["shopify_product_variant_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_variant_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9760609, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_variant_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant_tmp\""}, "model.shopify_source.stg_shopify__order_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_tmp.sql", "name": "stg_shopify__order_tmp", "alias": "stg_shopify__order_tmp", "checksum": {"name": "sha256", "checksum": "f4fd2563557b13c2b54531a7fa9995e496aa1b39432d729a010ddcb7e10001ae"}, "tags": [], "refs": [["shopify_order_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9820101, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_tmp\""}, "model.klaviyo_source.stg_klaviyo__person": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_person_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__person"], "unique_id": "model.klaviyo_source.stg_klaviyo__person", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__person_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__person_tmp')),\n staging_columns=get_person_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n {{ fivetran_utils.fill_pass_through_columns('klaviyo__person_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__person.sql", "original_file_path": "models/stg_klaviyo__person.sql", "name": "stg_klaviyo__person", "alias": "stg_klaviyo__person", "checksum": {"name": "sha256", "checksum": "0c4d31fb3c257dff6d4c5123f3352ee790db81b766ac4f3be3b1cdb06d19b45f"}, "tags": [], "refs": [["stg_klaviyo__person_tmp"], ["stg_klaviyo__person_tmp"]], "sources": [], "metrics": [], "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__person.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.593917, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n address_1\n \n as \n \n address_1\n \n, \n \n \n address_2\n \n as \n \n address_2\n \n, \n \n \n city\n \n as \n \n city\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n latitude\n \n as \n \n latitude\n \n, \n \n \n longitude\n \n as \n \n longitude\n \n, \n \n \n organization\n \n as \n \n organization\n \n, \n \n \n phone_number\n \n as \n \n phone_number\n \n, \n \n \n region\n \n as \n \n region\n \n, \n \n \n timezone\n \n as \n \n timezone\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n zip\n \n as \n \n zip\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\""}, "model.klaviyo_source.stg_klaviyo__campaign": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__campaign"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__campaign_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__campaign_tmp')),\n staging_columns=get_campaign_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__campaign.sql", "original_file_path": "models/stg_klaviyo__campaign.sql", "name": "stg_klaviyo__campaign", "alias": "stg_klaviyo__campaign", "checksum": {"name": "sha256", "checksum": "3bb055bc8484630176011790a666821ae220126184e05eaff411aa44406048e2"}, "tags": [], "refs": [["stg_klaviyo__campaign_tmp"], ["stg_klaviyo__campaign_tmp"]], "sources": [], "metrics": [], "description": "Table capturing email campaigns in Klaviyo.\n", "columns": {"campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__campaign.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.5834439, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_type\n \n as \n \n campaign_type\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email_template_id\n \n as \n \n email_template_id\n \n, \n \n \n from_email\n \n as \n \n from_email\n \n, \n \n \n from_name\n \n as \n \n from_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n is_segmented\n \n as \n \n is_segmented\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n send_time\n \n as \n \n send_time\n \n, \n \n \n sent_at\n \n as \n \n sent_at\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n status_id\n \n as \n \n status_id\n \n, \n \n \n status_label\n \n as \n \n status_label\n \n, \n \n \n subject\n \n as \n \n subject\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\""}, "model.klaviyo_source.stg_klaviyo__metric": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_metric_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__metric"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__metric_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__metric_tmp')),\n staging_columns=get_metric_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__metric.sql", "original_file_path": "models/stg_klaviyo__metric.sql", "name": "stg_klaviyo__metric", "alias": "stg_klaviyo__metric", "checksum": {"name": "sha256", "checksum": "d131ba8b5c6b489c12dc687514ef82b359aecaa82175b66d77fa44344b4eb58f"}, "tags": [], "refs": [["stg_klaviyo__metric_tmp"], ["stg_klaviyo__metric_tmp"]], "sources": [], "metrics": [], "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_name": {"name": "metric_name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__metric.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.596544, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n integration_id\n \n as \n \n integration_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\""}, "model.klaviyo_source.stg_klaviyo__integration": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_integration_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__integration"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__integration_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__integration_tmp')),\n staging_columns=get_integration_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__integration.sql", "original_file_path": "models/stg_klaviyo__integration.sql", "name": "stg_klaviyo__integration", "alias": "stg_klaviyo__integration", "checksum": {"name": "sha256", "checksum": "cf1d2569260342f615850f5d782fb0e166d1b70ea3a703fb2248d6f457023cf8"}, "tags": [], "refs": [["stg_klaviyo__integration_tmp"], ["stg_klaviyo__integration_tmp"]], "sources": [], "metrics": [], "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__integration.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.59004, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n category\n \n as \n \n category\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 \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\""}, "model.klaviyo_source.stg_klaviyo__flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_flow_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__flow"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__flow_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__flow_tmp')),\n staging_columns=get_flow_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n {% if target.type == 'snowflake'%}\n \"TRIGGER\" \n {% else %}\n trigger\n {% endif %}\n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__flow.sql", "original_file_path": "models/stg_klaviyo__flow.sql", "name": "stg_klaviyo__flow", "alias": "stg_klaviyo__flow", "checksum": {"name": "sha256", "checksum": "a74ad01e8fbca823f7ec229f1d0c59171c4a1200e314cb06e0ac75da0bc72792"}, "tags": [], "refs": [["stg_klaviyo__flow_tmp"], ["stg_klaviyo__flow_tmp"]], "sources": [], "metrics": [], "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.588906, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\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 status\n \n as \n \n status\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n customer_filter\n \n as \n \n customer_filter\n \n, \n \n \n \n \n \"trigger\"\n \n \n \n as \n \n \n \n \"trigger\"\n \n \n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n \n trigger\n \n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\""}, "model.klaviyo_source.stg_klaviyo__event": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_event_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns", "macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__event"], "unique_id": "model.klaviyo_source.stg_klaviyo__event", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__event_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__event_tmp')),\n staging_columns=get_event_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as {{ dbt.type_timestamp() }} ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n {{ fivetran_utils.fill_pass_through_columns('klaviyo__event_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as occurred_on,\n {{ dbt_utils.generate_surrogate_key(['event_id', 'source_relation']) }} as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__event.sql", "original_file_path": "models/stg_klaviyo__event.sql", "name": "stg_klaviyo__event", "alias": "stg_klaviyo__event", "checksum": {"name": "sha256", "checksum": "ac7fe60fc899d46d3cc8bad8279fbcf6bf8560a43d6389c41b7aeab1cb695bb7"}, "tags": [], "refs": [["stg_klaviyo__event_tmp"], ["stg_klaviyo__event_tmp"]], "sources": [], "metrics": [], "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__event.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.586554, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n _variation\n \n as \n \n _variation\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n datetime\n \n as \n \n datetime\n \n, \n \n \n flow_id\n \n as \n \n flow_id\n \n, \n \n \n flow_message_id\n \n as \n \n flow_message_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n metric_id\n \n as \n \n metric_id\n \n, \n \n \n person_id\n \n as \n \n person_id\n \n, \n \n \n timestamp\n \n as \n \n timestamp\n \n, \n \n \n type\n \n as \n \n type\n \n, \n \n \n uuid\n \n as \n \n uuid\n \n, \n \n \n property_value\n \n as \n \n property_value\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as TIMESTAMP ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( date_trunc('day', occurred_at) as date) as occurred_on,\n \n \nmd5(cast(coalesce(cast(event_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\""}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.event"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__event_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='event', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='event_table',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__event_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__event_tmp.sql", "name": "stg_klaviyo__event_tmp", "alias": "stg_klaviyo__event_tmp", "checksum": {"name": "sha256", "checksum": "0aa5096828da6b1f75fb7a93d5f7621f024adb2ef241014a075abae8511fb337"}, "tags": [], "refs": [["event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__event_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.097572, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"event\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event_tmp\""}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.metric"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__metric_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='metric', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='metric',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__metric_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__metric_tmp.sql", "name": "stg_klaviyo__metric_tmp", "alias": "stg_klaviyo__metric_tmp", "checksum": {"name": "sha256", "checksum": "1f887542c817cae88b22c9632e93da3ae5fa6c02dadc22e8901484b55e4c5f2d"}, "tags": [], "refs": [["metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__metric_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.10347, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"metric\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric_tmp\""}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.campaign"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__campaign_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='campaign', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='campaign',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__campaign_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__campaign_tmp.sql", "name": "stg_klaviyo__campaign_tmp", "alias": "stg_klaviyo__campaign_tmp", "checksum": {"name": "sha256", "checksum": "f494e0b1c1093180196545a7c05c0f8f7f8ed074e63328057021091c1d776530"}, "tags": [], "refs": [["campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__campaign_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.10916, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"campaign\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\""}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.integration"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__integration_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='integration', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='integration',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__integration_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__integration_tmp.sql", "name": "stg_klaviyo__integration_tmp", "alias": "stg_klaviyo__integration_tmp", "checksum": {"name": "sha256", "checksum": "174b16d87563e123fb0d813d3749c31fb80fc08df48143729e28f34bce0a2e04"}, "tags": [], "refs": [["integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__integration_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.1149492, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"integration\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration_tmp\""}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.flow"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__flow_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='flow', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='flow',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__flow_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__flow_tmp.sql", "name": "stg_klaviyo__flow_tmp", "alias": "stg_klaviyo__flow_tmp", "checksum": {"name": "sha256", "checksum": "4437a7971622b8cd114313ee2b1a59b992ba862c49f0086851d5d60082617b0c"}, "tags": [], "refs": [["flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__flow_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.121218, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"flow\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow_tmp\""}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.person"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__person_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='person', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='person',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__person_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__person_tmp.sql", "name": "stg_klaviyo__person_tmp", "alias": "stg_klaviyo__person_tmp", "checksum": {"name": "sha256", "checksum": "ec768db1c8d1d5eb47e967bf23bb95726133d2a298373f757930302de96e2910"}, "tags": [], "refs": [["person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__person_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.12846, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"person\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person_tmp\""}, "model.klaviyo.klaviyo__person_campaign_flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__person_campaign_flow"], "unique_id": "model.klaviyo.klaviyo__person_campaign_flow", "raw_code": "with events as (\n select *\n from {{ ref('klaviyo__events') }}\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=7) }}\n)\n\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__person_campaign_flow.sql", "original_file_path": "models/klaviyo__person_campaign_flow.sql", "name": "klaviyo__person_campaign_flow", "alias": "klaviyo__person_campaign_flow", "checksum": {"name": "sha256", "checksum": "89abb4c1b2f90ada510aba4f45cb935f457c0e0a776a6f761826e5b270bc7817"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "Table that aggregates event metrics to the person-campaign or -flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that organic interactions (someone with null campaign_id/flow_id) are included in this table. \n**Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\n", "columns": {"person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who interacted with the flow/message.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person. In other words, the first event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person. In other words, the last event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__person_campaign_flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.65888, "compiled_code": "with events as (\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then 1 else 0 end) \n as count_cancelled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'fulfilled order' then 1 else 0 end) \n as count_fulfilled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'bounced email' then 1 else 0 end) \n as count_bounced_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'dropped email' then 1 else 0 end) \n as count_dropped_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to list' then 1 else 0 end) \n as count_subscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed to list' then 1 else 0 end) \n as count_unsubscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'updated email preferences' then 1 else 0 end) \n as count_updated_email_preferences -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to back in stock' then 1 else 0 end) \n as count_subscribed_to_back_in_stock -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'merged profile' then 1 else 0 end) \n as count_merged_profile -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'consented to receive sms' then 1 else 0 end) \n as count_consented_to_receive_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'failed to deliver sms' then 1 else 0 end) \n as count_failed_to_deliver_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7\n)\n\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\""}, "model.klaviyo.klaviyo__persons": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__persons"], "unique_id": "model.klaviyo.klaviyo__persons", "raw_code": "with person as (\n\n select *\n from {{ var('person') }}\n),\n\nperson_metrics as (\n\n select *\n from {{ ref('int_klaviyo__person_metrics') }}\n),\n\nperson_join as (\n\n select\n person.*,\n {{ dbt_utils.star(from=ref('int_klaviyo__person_metrics'), except=[\"person_id\", \"source_relation\"]) }}\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__persons.sql", "original_file_path": "models/klaviyo__persons.sql", "name": "klaviyo__persons", "alias": "klaviyo__persons", "checksum": {"name": "sha256", "checksum": "4228e8c8280040f57997ecd7d0cd1c726cee6789721533903c2f75ad6cefc473"}, "tags": [], "refs": [["stg_klaviyo__person"], ["int_klaviyo__person_metrics"], ["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "Table of unique person profiles, enhanced with event, campaign, flow, and revenue metrics. \n**Counts** of instances of triggered events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__persons.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.672087, "compiled_code": "with person as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\nperson_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\n),\n\nperson_join as (\n\n select\n person.*,\n \"count_total_campaigns\",\n \"count_total_flows\",\n \"first_event_at\",\n \"last_event_at\",\n \"first_campaign_touch_at\",\n \"last_campaign_touch_at\",\n \"first_flow_touch_at\",\n \"last_flow_touch_at\",\n \"total_sum_revenue_refunded_order\",\n \"organic_sum_revenue_refunded_order\",\n \"total_sum_revenue_placed_order\",\n \"organic_sum_revenue_placed_order\",\n \"total_sum_revenue_ordered_product\",\n \"organic_sum_revenue_ordered_product\",\n \"total_sum_revenue_checkout_started\",\n \"organic_sum_revenue_checkout_started\",\n \"total_sum_revenue_cancelled_order\",\n \"organic_sum_revenue_cancelled_order\",\n \"total_count_active_on_site\",\n \"total_count_viewed_product\",\n \"total_count_ordered_product\",\n \"total_count_placed_order\",\n \"total_count_refunded_order\",\n \"total_count_cancelled_order\",\n \"total_count_fulfilled_order\",\n \"total_count_received_email\",\n \"total_count_clicked_email\",\n \"total_count_opened_email\",\n \"total_count_bounced_email\",\n \"total_count_marked_email_as_spam\",\n \"total_count_dropped_email\",\n \"total_count_subscribed_to_list\",\n \"total_count_unsubscribed_to_list\",\n \"total_count_unsubscribed\",\n \"total_count_updated_email_preferences\",\n \"total_count_subscribed_to_back_in_stock\",\n \"total_count_merged_profile\",\n \"total_count_received_sms\",\n \"total_count_clicked_sms\",\n \"total_count_consented_to_receive_sms\",\n \"total_count_sent_sms\",\n \"total_count_unsubscribed_from_sms\",\n \"total_count_failed_to_deliver_sms\"\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\""}, "model.klaviyo.klaviyo__flows": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__flows"], "unique_id": "model.klaviyo.klaviyo__flows", "raw_code": "with flow as (\n\n select *\n from {{ var('flow') }}\n),\n\nflow_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\nflow_join as (\n \n {% set exclude_fields = ['last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n flow.*, -- has flow_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['flow_id','variation_id']) }} as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__flows.sql", "original_file_path": "models/klaviyo__flows.sql", "name": "klaviyo__flows", "alias": "klaviyo__flows", "checksum": {"name": "sha256", "checksum": "8817e15a1759539ac4c9093b2f7ac78c43444e5dd502a51b0372e74eecc59a85"}, "tags": [], "refs": [["stg_klaviyo__flow"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique flow versions. A flow with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"flow_variation_key": {"name": "flow_variation_key", "description": "Unique key hashed on the flow and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__flows.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.66625, "compiled_code": "with flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nflow_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\nflow_join as (\n \n \n\n select\n flow.*, -- has flow_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(flow_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\""}, "model.klaviyo.klaviyo__campaigns": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__campaigns"], "unique_id": "model.klaviyo.klaviyo__campaigns", "raw_code": "with campaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\ncampaign_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\ncampaign_join as (\n \n {% set exclude_fields = [ 'last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n campaign.*, -- has campaign_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['campaign_id','variation_id']) }} as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__campaigns.sql", "original_file_path": "models/klaviyo__campaigns.sql", "name": "klaviyo__campaigns", "alias": "klaviyo__campaigns", "checksum": {"name": "sha256", "checksum": "5339678a1118c92336a1f5f30e28a6d5025c4a316daaeea450636ec0d9ffd7ff"}, "tags": [], "refs": [["stg_klaviyo__campaign"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique campaign versions. A campaign with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"campaign_variation_key": {"name": "campaign_variation_key", "description": "Unique key hashed on the campaign and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__campaigns.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.663269, "compiled_code": "with campaign as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\ncampaign_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\ncampaign_join as (\n \n \n\n select\n campaign.*, -- has campaign_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(campaign_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\""}, "model.klaviyo.klaviyo__events": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.star", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__events"], "unique_id": "model.klaviyo.klaviyo__events", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('snowflake', 'postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from {{ ref('int_klaviyo__event_attribution') }}\n\n {% if is_incremental() %}\n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n {% endif %}\n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n {% set exclude_fields = ['touch_session', 'last_touch_id', 'session_start_at', 'session_event_type', 'type', 'session_touch_type'] %}\n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n {{ dbt_utils.star(from=ref('int_klaviyo__event_attribution'), except=exclude_fields) }},\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\nflow as (\n\n select *\n from {{ var('flow') }}\n),\n\nperson as (\n\n select *\n from {{ var('person') }}\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from {{ var('metric') }}\n),\n\nintegration as (\n\n select *\n from {{ var('integration') }}\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__events.sql", "original_file_path": "models/klaviyo__events.sql", "name": "klaviyo__events", "alias": "klaviyo__events", "checksum": {"name": "sha256", "checksum": "b58f0fa005e289d64b3588e298df678566c7b8921c3e97b4612f3339899292ba"}, "tags": [], "refs": [["int_klaviyo__event_attribution"], ["int_klaviyo__event_attribution"], ["stg_klaviyo__campaign"], ["stg_klaviyo__flow"], ["stg_klaviyo__person"], ["stg_klaviyo__metric"], ["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "Table of Klaviyo events, enriched with attribution data (see `int_klaviyo__event_attribution` for details), and information regarding the event's associated user, flow, campaign, and platform/integration. \nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_at": {"name": "last_touch_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This will be null if the event is not attributed to any flow or campaign. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms). This will be null if the event is not attributed to any flow or campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_city": {"name": "person_city", "description": "City that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_country": {"name": "person_country", "description": "Country that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_region": {"name": "person_region", "description": "Region or state that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_email": {"name": "person_email", "description": "The email address and the unique identifier for the person who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_timezone": {"name": "person_timezone", "description": "Timezone that the person who triggered this event is situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the platform that triggered the event (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_category": {"name": "integration_category", "description": "Use-case category of the platform that sent the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__events.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.656723, "compiled_code": "\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n\n \n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n \n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n \n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n \"variation_id\",\n \"campaign_id\",\n \"occurred_at\",\n \"flow_id\",\n \"flow_message_id\",\n \"event_id\",\n \"metric_id\",\n \"person_id\",\n \"uuid\",\n \"numeric_value\",\n \"_fivetran_synced\",\n \"source_relation\",\n \"occurred_on\",\n \"unique_event_id\",\n \"touch_id\",\n \"touch_type\",\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\nflow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nperson as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\n),\n\nintegration as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\""}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__campaign_flow_metrics"], "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any person-level metrics to the flow/campaign level\n , sum( {{ col.name }} ) as {{ col.name }}\n\n {% if 'sum_revenue' not in col.name|lower %} -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when {{ col.name }} > 0 then 1 else 0 end) as {{ 'unique_' ~ col.name }}\n\n {% endif %}\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__campaign_flow_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "name": "int_klaviyo__campaign_flow_metrics", "alias": "int_klaviyo__campaign_flow_metrics", "checksum": {"name": "sha256", "checksum": "05f2223e2d8ab2cbcb57045b3008aee2e9c74f1803cb5e3b658b8b92b7b22e9d"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the campaign or flow AND variation grain. A campaign with A/B versions will have 2 records. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1666978250.7065659, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_refunded_order ) as sum_revenue_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_placed_order ) as sum_revenue_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_ordered_product ) as sum_revenue_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_checkout_started ) as sum_revenue_checkout_started\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_cancelled_order ) as sum_revenue_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_active_on_site ) as count_active_on_site\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_active_on_site > 0 then 1 else 0 end) as unique_count_active_on_site\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_viewed_product ) as count_viewed_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_viewed_product > 0 then 1 else 0 end) as unique_count_viewed_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_ordered_product ) as count_ordered_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_ordered_product > 0 then 1 else 0 end) as unique_count_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_placed_order ) as count_placed_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_placed_order > 0 then 1 else 0 end) as unique_count_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_refunded_order ) as count_refunded_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_refunded_order > 0 then 1 else 0 end) as unique_count_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_cancelled_order ) as count_cancelled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_cancelled_order > 0 then 1 else 0 end) as unique_count_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_fulfilled_order ) as count_fulfilled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_fulfilled_order > 0 then 1 else 0 end) as unique_count_fulfilled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_email ) as count_received_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_email > 0 then 1 else 0 end) as unique_count_received_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_email ) as count_clicked_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_email > 0 then 1 else 0 end) as unique_count_clicked_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_opened_email ) as count_opened_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_opened_email > 0 then 1 else 0 end) as unique_count_opened_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_bounced_email ) as count_bounced_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_bounced_email > 0 then 1 else 0 end) as unique_count_bounced_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_marked_email_as_spam ) as count_marked_email_as_spam\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_marked_email_as_spam > 0 then 1 else 0 end) as unique_count_marked_email_as_spam\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_dropped_email ) as count_dropped_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_dropped_email > 0 then 1 else 0 end) as unique_count_dropped_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_list ) as count_subscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_list > 0 then 1 else 0 end) as unique_count_subscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_to_list ) as count_unsubscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_to_list > 0 then 1 else 0 end) as unique_count_unsubscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed ) as count_unsubscribed\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed > 0 then 1 else 0 end) as unique_count_unsubscribed\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_updated_email_preferences ) as count_updated_email_preferences\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_updated_email_preferences > 0 then 1 else 0 end) as unique_count_updated_email_preferences\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_back_in_stock ) as count_subscribed_to_back_in_stock\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_back_in_stock > 0 then 1 else 0 end) as unique_count_subscribed_to_back_in_stock\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_merged_profile ) as count_merged_profile\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_merged_profile > 0 then 1 else 0 end) as unique_count_merged_profile\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_sms ) as count_received_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_sms > 0 then 1 else 0 end) as unique_count_received_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_sms ) as count_clicked_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_sms > 0 then 1 else 0 end) as unique_count_clicked_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_consented_to_receive_sms ) as count_consented_to_receive_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_consented_to_receive_sms > 0 then 1 else 0 end) as unique_count_consented_to_receive_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_sent_sms ) as count_sent_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_sent_sms > 0 then 1 else 0 end) as unique_count_sent_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_from_sms ) as count_unsubscribed_from_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_from_sms > 0 then 1 else 0 end) as unique_count_unsubscribed_from_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_failed_to_deliver_sms ) as count_failed_to_deliver_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_failed_to_deliver_sms > 0 then 1 else 0 end) as unique_count_failed_to_deliver_sms\n\n \n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\""}, "model.klaviyo.int_klaviyo__person_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__person_metrics"], "unique_id": "model.klaviyo.int_klaviyo__person_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( {{ col.name }} ) as {{ 'total_' ~ col.name }}\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n {% if 'sum_revenue' in col.name|lower %}\n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then {{ col.name }} else 0 end ) as {{ 'organic_' ~ col.name }}\n {% endif %}\n\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__person_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__person_metrics.sql", "name": "int_klaviyo__person_metrics", "alias": "int_klaviyo__person_metrics", "checksum": {"name": "sha256", "checksum": "a17b4d3bfd7f6a19bc40dc8199f22c30594994645f31cc2bd72280e8ac429259"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the person grain. \n**Counts** of instances of the events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. \nThese columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__person_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1666978250.70891, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_refunded_order ) as total_sum_revenue_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_refunded_order else 0 end ) as organic_sum_revenue_refunded_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_placed_order ) as total_sum_revenue_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_placed_order else 0 end ) as organic_sum_revenue_placed_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_ordered_product ) as total_sum_revenue_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_ordered_product else 0 end ) as organic_sum_revenue_ordered_product\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_checkout_started ) as total_sum_revenue_checkout_started\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_checkout_started else 0 end ) as organic_sum_revenue_checkout_started\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_cancelled_order ) as total_sum_revenue_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_cancelled_order else 0 end ) as organic_sum_revenue_cancelled_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_active_on_site ) as total_count_active_on_site\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_viewed_product ) as total_count_viewed_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_ordered_product ) as total_count_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_placed_order ) as total_count_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_refunded_order ) as total_count_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_cancelled_order ) as total_count_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_fulfilled_order ) as total_count_fulfilled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_email ) as total_count_received_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_email ) as total_count_clicked_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_opened_email ) as total_count_opened_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_bounced_email ) as total_count_bounced_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_marked_email_as_spam ) as total_count_marked_email_as_spam\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_dropped_email ) as total_count_dropped_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_list ) as total_count_subscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_to_list ) as total_count_unsubscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed ) as total_count_unsubscribed\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_updated_email_preferences ) as total_count_updated_email_preferences\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_back_in_stock ) as total_count_subscribed_to_back_in_stock\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_merged_profile ) as total_count_merged_profile\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_sms ) as total_count_received_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_sms ) as total_count_clicked_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_consented_to_receive_sms ) as total_count_consented_to_receive_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_sent_sms ) as total_count_sent_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_from_sms ) as total_count_unsubscribed_from_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_failed_to_deliver_sms ) as total_count_failed_to_deliver_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\""}, "model.klaviyo.int_klaviyo__event_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__event_attribution"], "unique_id": "model.klaviyo.int_klaviyo__event_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from {{ var('event_table') }}\n\n {% if is_incremental() %}\n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from {{ var('event_table') }}\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n {% endif %}\n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when {{ dbt.datediff('session_start_at', 'occurred_at', 'hour') }} <= (\n case \n when lower(session_event_type) like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__event_attribution.sql", "original_file_path": "models/intermediate/int_klaviyo__event_attribution.sql", "name": "int_klaviyo__event_attribution", "alias": "int_klaviyo__event_attribution", "checksum": {"name": "sha256", "checksum": "1f480b6b2d20e722233a9b0067f3bb54cb49300094e2cc39e6597cbca1c04f05"}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "Table enriching events with an additional layer of last-touch attribution. Though Klaviyo already performs attribution on events each day, this extra step is necessary, as certain kinds of events/metrics never get attributed to flows or campaigns via Klaviyo's internal model. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with conversions. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. Note that this refers to the events eligible to credit campaigns and flows with conversions, _not_ the events eligible to receive attribution (all kinds of events are privy to this).\nSimilar to Klaviyo, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_session": {"name": "touch_session", "description": "ID used to batch an individual person's events into attribution-groups. Each event that comes attributed to a campaign or flow begins a new session/batch, in which the following events without a flow/campaign_id have the same `touch_session` (and may be attributed to the same flow/campaign).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_start_at": {"name": "session_start_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This is the beginning of the event's touch-session.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_event_type": {"name": "session_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_id": {"name": "last_touch_id", "description": "The campaign or flow that the package attributed the event to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__event_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "int_klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.7048929, "compiled_code": "\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n\n \n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n \n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when \n (\n ((occurred_at)::date - (session_start_at)::date)\n * 24 + date_part('hour', (occurred_at)::timestamp) - date_part('hour', (session_start_at)::timestamp))\n <= (\n case \n when lower(session_event_type) like '%sms%' then 24\n else 120 end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\""}, "model.shopify.shopify__customer_cohorts": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__customer_cohorts"], "unique_id": "model.shopify.shopify__customer_cohorts", "raw_code": "with calendar as (\n\n select *\n from {{ ref('shopify__calendar') }}\n where cast({{ dbt.date_trunc('month','date_day') }} as date) = date_day\n\n), customers as (\n\n select *\n from {{ ref('shopify__customers') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n {{ dbt.date_trunc('month', 'first_order_timestamp') }} as cohort_month\n from calendar\n inner join customers\n on cast({{ dbt.date_trunc('month', 'first_order_timestamp') }} as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast({{ dbt.date_trunc('month', 'created_timestamp') }} as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n {% set partition_string = 'partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row' %}\n\n select\n *,\n sum(total_price_in_month) over ({{ partition_string }}) as total_price_lifetime,\n sum(order_count_in_month) over ({{ partition_string }}) as order_count_lifetime,\n sum(line_item_count_in_month) over ({{ partition_string }}) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n {{ dbt_utils.generate_surrogate_key(['date_month','customer_id','source_relation']) }} as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customer_cohorts.sql", "original_file_path": "models/shopify__customer_cohorts.sql", "name": "shopify__customer_cohorts", "alias": "shopify__customer_cohorts", "checksum": {"name": "sha256", "checksum": "97387e363d6fb5bfad38ffaabbcd3a54bd3afb18648a1e002b151f7d7658f7f7"}, "tags": [], "refs": [["shopify__calendar"], ["shopify__customers"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a customer's performance in a calendar month.", "columns": {"cohort_month": {"name": "cohort_month", "description": "The month the cohort belongs to, i.e the first month the customer had an order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cohort_month_number": {"name": "cohort_month_number", "description": "The 'number' of the `date_month` of the record, i.e. how many months from their start month this cohort occurred", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_cohort_id": {"name": "customer_cohort_id", "description": "Unique key representing a customer in a given month.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the related customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "date_month": {"name": "date_month", "description": "The calendar month the customer stats relate to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp of the customer's first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_in_month": {"name": "line_item_count_in_month", "description": "Number of line items purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_lifetime": {"name": "line_item_count_lifetime", "description": "Number of line items purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_in_month": {"name": "order_count_in_month", "description": "Number of orders purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_lifetime": {"name": "order_count_lifetime", "description": "Number of orders purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_in_month": {"name": "total_price_in_month", "description": "Total amount (in currency) purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_lifetime": {"name": "total_price_lifetime", "description": "Total amount (in currency) up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customer_cohorts.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7290711, "compiled_code": "with calendar as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__calendar\"\n where cast(date_trunc('month', date_day) as date) = date_day\n\n), customers as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n\n), orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n date_trunc('month', first_order_timestamp) as cohort_month\n from calendar\n inner join customers\n on cast(date_trunc('month', first_order_timestamp) as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast(date_trunc('month', created_timestamp) as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n \n\n select\n *,\n sum(total_price_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as total_price_lifetime,\n sum(order_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as order_count_lifetime,\n sum(line_item_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n \n \nmd5(cast(coalesce(cast(date_month as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(customer_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\""}, "model.shopify.shopify__orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.json_parse", "macro.dbt.type_float"], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__orders__order_line_aggregates", "model.shopify_source.stg_shopify__order_adjustment", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__orders"], "unique_id": "model.shopify.shopify__orders", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__orders__order_line_aggregates') }}\n\n{% if var('shopify__using_order_adjustment', true) %}\n), order_adjustments as (\n\n select *\n from {{ var('shopify_order_adjustment') }}\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n{% endif %}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast({{ fivetran_utils.json_parse(\"total_shipping_price_set\",[\"shop_money\",\"amount\"]) }} as {{ dbt.type_float() }}) ,0) as shipping_cost,\n \n {% if var('shopify__using_order_adjustment', true) %}\n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n {% endif %}\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n {% endif %}\n (orders.total_price\n {% if var('shopify__using_order_adjustment', true) %}\n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n {% endif %}\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n {% endif %} ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n {% endif %}\n {% if var('shopify__using_order_adjustment', true) %}\n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n {% endif %}\n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__orders.sql", "original_file_path": "models/shopify__orders.sql", "name": "shopify__orders", "alias": "shopify__orders", "checksum": {"name": "sha256", "checksum": "423b0e297b935b36fa5e577280eb50c3a60dee686bf91546caaa81c7d8ff6afb"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__orders__order_line_aggregates"], ["stg_shopify__order_adjustment"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7448, "compiled_code": "with __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n), __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), order_lines as (\n\n select *\n from __dbt__cte__shopify__orders__order_line_aggregates\n\n\n), order_adjustments as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\"\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast(\n\n total_shipping_price_set::json #>> '{shop_money,amount}'\n\n as FLOAT) ,0) as shipping_cost,\n \n \n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n \n\n \n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n \n (orders.total_price\n \n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n \n \n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n \n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n \n \n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n \n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}, {"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\""}, "model.shopify.shopify__products": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__product", "model.shopify.shopify__order_lines", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__products"], "unique_id": "model.shopify.shopify__products", "raw_code": "with products as (\n\n select *\n from {{ var('shopify_product') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders')}}\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n {% endif %}\n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n {% endif %}\n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__products.sql", "original_file_path": "models/shopify__products.sql", "name": "shopify__products", "alias": "shopify__products", "checksum": {"name": "sha256", "checksum": "e699f3d418cc215e557b5a7ad0705f82470c62c8b54b3fbb29a2896c507ba033"}, "tags": [], "refs": [["stg_shopify__product"], ["shopify__order_lines"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold": {"name": "quantity_sold", "description": "Quantity of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold": {"name": "subtotal_sold", "description": "Total amount of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold_net_refunds": {"name": "quantity_sold_net_refunds", "description": "Quantity of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold_net_refunds": {"name": "subtotal_sold_net_refunds", "description": "Total amount of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the product was first ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the product was most recently ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__products.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.782243, "compiled_code": "with products as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n\n), orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n \n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n \n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n \n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n \n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__products\""}, "model.shopify.shopify__transactions": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.json_parse", "macro.dbt.type_numeric"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__transactions"], "unique_id": "model.shopify.shopify__transactions", "raw_code": "with transactions as (\n select *\n from {{ var('shopify_transaction') }}\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) as exchange_rate,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__transactions.sql", "original_file_path": "models/shopify__transactions.sql", "name": "shopify__transactions", "alias": "shopify__transactions", "checksum": {"name": "sha256", "checksum": "bd6f41006c7d0c20a0d1fbcbc684f1487570f12e7139030ea4f1e39b2ef521b9"}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of the date the record was synced by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate between the home currency and the currency of sale at the time of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_calculated_amount": {"name": "currency_exchange_calculated_amount", "description": "The total amount of the transaction with the currency exchange rate applied.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__transactions.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7986162, "compiled_code": "with transactions as (\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\"\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) as exchange_rate,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\""}, "model.shopify.shopify__customers": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer", "model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__customers"], "unique_id": "model.shopify.shopify__customers", "raw_code": "with customers as (\n\n select \n {{ dbt_utils.star(from=ref('stg_shopify__customer'), except=[\"orders_count\", \"total_spent\"]) }}\n from {{ var('shopify_customer') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__customers__order_aggregates' )}}\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customers.sql", "original_file_path": "models/shopify__customers.sql", "name": "shopify__customers", "alias": "shopify__customers", "checksum": {"name": "sha256", "checksum": "70e28dce05bc26f7fc7678928e4bf4ab455d399c6f314f54d3c4671be96d3b7e"}, "tags": [], "refs": [["stg_shopify__customer"], ["stg_shopify__customer"], ["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customers.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.74929, "compiled_code": "with __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),customers as (\n\n select \n \"_fivetran_synced\",\n \"has_accepted_marketing\",\n \"created_timestamp\",\n \"default_address_id\",\n \"email\",\n \"first_name\",\n \"customer_id\",\n \"last_name\",\n \"phone\",\n \"account_state\",\n \"is_tax_exempt\",\n \"updated_timestamp\",\n \"is_verified_email\",\n \"source_relation\"\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\"\n\n), orders as (\n\n select *\n from __dbt__cte__shopify__customers__order_aggregates\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\""}, "model.shopify.shopify__order_lines": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__order_lines"], "unique_id": "model.shopify.shopify__order_lines", "raw_code": "with order_lines as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), product_variants as (\n\n select *\n from {{ var('shopify_product_variant') }}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n order_lines.*,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n {% endif %}\n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n {% endif %}\n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__order_lines.sql", "original_file_path": "models/shopify__order_lines.sql", "name": "shopify__order_lines", "alias": "shopify__order_lines", "checksum": {"name": "sha256", "checksum": "c9fa8308e1257375b69ec4b40135a4d1ad64fab1d9e0c14b7a353132438df5d8"}, "tags": [], "refs": [["stg_shopify__order_line"], ["stg_shopify__product_variant"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents a line item of an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_quantity": {"name": "refunded_quantity", "description": "Quantity of the item that has been refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_net_refunds": {"name": "quantity_net_refunds", "description": "Quantity ordered, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_barcode": {"name": "variant_barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_compare_at_price": {"name": "variant_compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_created_at": {"name": "variant_created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_fulfillment_service": {"name": "variant_fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_grams": {"name": "variant_grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_image_id": {"name": "variant_image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_management": {"name": "variant_inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_policy": {"name": "variant_inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_quantity": {"name": "variant_inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_1": {"name": "variant_option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_2": {"name": "variant_option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_3": {"name": "variant_option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_position": {"name": "variant_position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_price": {"name": "variant_price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_requiring_shipping": {"name": "variant_is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_sku": {"name": "variant_sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_taxable": {"name": "variant_is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_title": {"name": "variant_title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_updated_at": {"name": "variant_updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight": {"name": "variant_weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight_unit": {"name": "variant_weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_subtotal": {"name": "refunded_subtotal", "description": "Subtotal amount of the refund applied to the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_net_refunds": {"name": "subtotal_net_refunds", "description": "Subtotal of the order line with refunds subtracted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "Image id of the product variant associated with the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__order_lines.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.791569, "compiled_code": "with __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), product_variants as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\"\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n order_lines.*,\n\n \n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n \n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n \n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n \n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\""}, "model.shopify.shopify__calendar": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_spine"], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "utils", "shopify__calendar"], "unique_id": "model.shopify.shopify__calendar", "raw_code": "{{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=\"cast('2019-01-01' as date)\",\n end_date=\"current_date\"\n )\n}}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "utils/shopify__calendar.sql", "original_file_path": "models/utils/shopify__calendar.sql", "name": "shopify__calendar", "alias": "shopify__calendar", "checksum": {"name": "sha256", "checksum": "330711091f6b47526ac5e8bc39960b2d171633362c0e10b666931be500abeddd"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/utils/shopify__calendar.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.2859719, "compiled_code": "\n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n + \n \n p5.generated_number * power(2, 5)\n + \n \n p6.generated_number * power(2, 6)\n + \n \n p7.generated_number * power(2, 7)\n + \n \n p8.generated_number * power(2, 8)\n + \n \n p9.generated_number * power(2, 9)\n + \n \n p10.generated_number * power(2, 10)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n cross join \n \n p as p5\n cross join \n \n p as p6\n cross join \n \n p as p7\n cross join \n \n p as p8\n cross join \n \n p as p9\n cross join \n \n p as p10\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 1396\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n cast('2019-01-01' as date) + ((interval '1 day') * (row_number() over (order by 1) - 1))\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= current_date\n\n)\n\nselect * from filtered\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__calendar\""}, "model.shopify.shopify__orders__order_line_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_line_aggregates"], "unique_id": "model.shopify.shopify__orders__order_line_aggregates", "raw_code": "with order_line as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_line_aggregates.sql", "original_file_path": "models/intermediate/shopify__orders__order_line_aggregates.sql", "name": "shopify__orders__order_line_aggregates", "alias": "shopify__orders__order_line_aggregates", "checksum": {"name": "sha256", "checksum": "837181b671b2beb8e58924357d213e33d6479a47e16c604db35cbb6ce6489fa8"}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_line_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1666978250.819801, "compiled_code": "with order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__customers__order_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__customers__order_aggregates"], "unique_id": "model.shopify.shopify__customers__order_aggregates", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), transactions as (\n\n select *\n from {{ ref('shopify__transactions' )}}\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__customers__order_aggregates.sql", "original_file_path": "models/intermediate/shopify__customers__order_aggregates.sql", "name": "shopify__customers__order_aggregates", "alias": "shopify__customers__order_aggregates", "checksum": {"name": "sha256", "checksum": "902e082d29e1b00c443c6d18109a496dc53a1a7e927134bc8a523cdc106076bd"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__customers__order_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1666978250.819477, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__orders__order_refunds": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_refunds"], "unique_id": "model.shopify.shopify__orders__order_refunds", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['shopify__using_order_line_refund','shopify__using_refund'])) }}\n\nwith refunds as (\n\n select *\n from {{ var('shopify_refund') }}\n\n), order_line_refunds as (\n\n select *\n from {{ var('shopify_order_line_refund') }}\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_refunds.sql", "original_file_path": "models/intermediate/shopify__orders__order_refunds.sql", "name": "shopify__orders__order_refunds", "alias": "shopify__orders__order_refunds", "checksum": {"name": "sha256", "checksum": "1bcc3be258e3bdda4c6845e465f95e7e5b4e0eee823b169e0cd5e7eff4cf7792"}, "tags": [], "refs": [["stg_shopify__refund"], ["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_refunds.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral", "enabled": true}, "created_at": 1666978250.82009, "compiled_code": "\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__customer_enhanced"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "raw_code": "with shopify_customers as (\n\n select *\n from {{ ref('int__shopify_customer_rollup') }}\n\n), klaviyo_persons as (\n\n select *\n from {{ ref('int__klaviyo_person_rollup') }}\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n {{ dbt_utils.star(from=ref('int__shopify_customer_rollup'), relation_alias='shopify_customers', prefix='shopify_',\n except=['source_relation','email', 'full_name', 'customer_ids', 'phone_numbers', 'first_shopify_account_made_at','last_shopify_account_made_at', \n 'last_updated_at', 'is_verified_email'] ) \n }},\n shopify_customers.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__klaviyo_person_rollup'), relation_alias='klaviyo_persons', prefix='klaviyo_',\n except=['source_relation','email', 'full_name', 'first_klaviyo_account_made_at', 'last_klaviyo_account_made_at', 'person_ids', 'phone_numbers', 'last_updated_at'] ) \n }},\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__customer_enhanced.sql", "original_file_path": "models/shopify_holistic_reporting__customer_enhanced.sql", "name": "shopify_holistic_reporting__customer_enhanced", "alias": "shopify_holistic_reporting__customer_enhanced", "checksum": {"name": "sha256", "checksum": "db442dfeedb2bb460e284b8e3d2742abc3f9ae90d8db670d6019afc567b53a09"}, "tags": [], "refs": [["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"], ["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"]], "sources": [], "metrics": [], "description": "Table consolidating customers and their information and activity metrics from across all platforms. A full outer join is performed in order to union together users who may not exist in both sources, and personal information is coalesced to consolidate as much information as possible. Includes any custom columns specified in passthrough variables for both Shopify and Klaviyo.\nFor **Klaviyo** metrics: Counts of instances of triggered events and sums of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the klaviyo__count_metrics and klaviyo__sum_revenue_metricsvariables, respectively. See the Klaviyo dbt_project.yml file for the default metrics used. These columns will be prefixed with total_count_, total_sum_revenue_ (organic + attributed), and organic_sum_revenue_ (not attributed to a campaign or flow).\nColumns that come _only_ from one source will be prefixed with that source name (ie klaviyo_)\n", "columns": {"shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_has_accepted_marketing": {"name": "shopify_has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_first_created_at": {"name": "shopify_customer_first_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_created_at": {"name": "shopify_customer_last_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_updated_at": {"name": "shopify_customer_last_updated_at", "description": "Timestamp of when the shopify customer was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_default_address_id": {"name": "shopify_default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_ids": {"name": "shopify_customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_count_orders": {"name": "shopify_lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "The unique phone number (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_account_state": {"name": "shopify_account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_is_tax_exempt": {"name": "shopify_is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_updated_at": {"name": "shopify_last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_shopify_email_verified": {"name": "is_shopify_email_verified", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_first_order_at": {"name": "shopify_first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_order_at": {"name": "shopify_last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_average_order_value": {"name": "shopify_average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_spent": {"name": "shopify_lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_refunded": {"name": "shopify_lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_amount": {"name": "shopify_lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_id": {"name": "klaviyo_person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_1": {"name": "klaviyo_address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_2": {"name": "klaviyo_address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_city": {"name": "klaviyo_city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_country": {"name": "klaviyo_country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_zip": {"name": "klaviyo_zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_created_at": {"name": "klaviyo_person_created_at", "description": "Timestamp of when the person's profile was created in Klaviyo.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_latitude": {"name": "klaviyo_latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_longitude": {"name": "klaviyo_longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_organization": {"name": "klaviyo_organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_region": {"name": "klaviyo_region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_timezone": {"name": "klaviyo_timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_title": {"name": "klaviyo_title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_updated_at": {"name": "klaviyo_person_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_campaigns": {"name": "klaviyo_count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_flows": {"name": "klaviyo_count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_campaign_touch_at": {"name": "klaviyo_first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_campaign_touch_at": {"name": "klaviyo_last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_flow_touch_at": {"name": "klaviyo_first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_flow_touch_at": {"name": "klaviyo_last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__customer_enhanced.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1666978250.840069, "compiled_code": "with shopify_customers as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__shopify_customer_rollup\"\n\n), klaviyo_persons as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__klaviyo_person_rollup\"\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n shopify_customers.\"first_order_at\" as \"shopify_first_order_at\",\n shopify_customers.\"last_order_at\" as \"shopify_last_order_at\",\n shopify_customers.\"lifetime_total_spent\" as \"shopify_lifetime_total_spent\",\n shopify_customers.\"lifetime_total_refunded\" as \"shopify_lifetime_total_refunded\",\n shopify_customers.\"lifetime_total_amount\" as \"shopify_lifetime_total_amount\",\n shopify_customers.\"lifetime_count_orders\" as \"shopify_lifetime_count_orders\",\n shopify_customers.\"average_order_value\" as \"shopify_average_order_value\",\n shopify_customers.\"has_accepted_marketing\" as \"shopify_has_accepted_marketing\",\n shopify_customers.\"is_tax_exempt\" as \"shopify_is_tax_exempt\",\n shopify_customers.\"default_address_id\" as \"shopify_default_address_id\",\n shopify_customers.\"account_state\" as \"shopify_account_state\",\n shopify_customers.source_relation as shopify_source_relation,\n\n klaviyo_persons.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_persons.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_persons.\"first_campaign_touch_at\" as \"klaviyo_first_campaign_touch_at\",\n klaviyo_persons.\"last_campaign_touch_at\" as \"klaviyo_last_campaign_touch_at\",\n klaviyo_persons.\"first_flow_touch_at\" as \"klaviyo_first_flow_touch_at\",\n klaviyo_persons.\"last_flow_touch_at\" as \"klaviyo_last_flow_touch_at\",\n klaviyo_persons.\"count_total_campaigns\" as \"klaviyo_count_total_campaigns\",\n klaviyo_persons.\"count_total_flows\" as \"klaviyo_count_total_flows\",\n klaviyo_persons.\"address_1\" as \"klaviyo_address_1\",\n klaviyo_persons.\"address_2\" as \"klaviyo_address_2\",\n klaviyo_persons.\"city\" as \"klaviyo_city\",\n klaviyo_persons.\"country\" as \"klaviyo_country\",\n klaviyo_persons.\"zip\" as \"klaviyo_zip\",\n klaviyo_persons.\"latitude\" as \"klaviyo_latitude\",\n klaviyo_persons.\"longitude\" as \"klaviyo_longitude\",\n klaviyo_persons.\"organization\" as \"klaviyo_organization\",\n klaviyo_persons.\"region\" as \"klaviyo_region\",\n klaviyo_persons.\"timezone\" as \"klaviyo_timezone\",\n klaviyo_persons.\"title\" as \"klaviyo_title\",\n klaviyo_persons.\"total_sum_revenue_refunded_order\" as \"klaviyo_total_sum_revenue_refunded_order\",\n klaviyo_persons.\"organic_sum_revenue_refunded_order\" as \"klaviyo_organic_sum_revenue_refunded_order\",\n klaviyo_persons.\"total_sum_revenue_placed_order\" as \"klaviyo_total_sum_revenue_placed_order\",\n klaviyo_persons.\"organic_sum_revenue_placed_order\" as \"klaviyo_organic_sum_revenue_placed_order\",\n klaviyo_persons.\"total_sum_revenue_ordered_product\" as \"klaviyo_total_sum_revenue_ordered_product\",\n klaviyo_persons.\"organic_sum_revenue_ordered_product\" as \"klaviyo_organic_sum_revenue_ordered_product\",\n klaviyo_persons.\"total_sum_revenue_checkout_started\" as \"klaviyo_total_sum_revenue_checkout_started\",\n klaviyo_persons.\"organic_sum_revenue_checkout_started\" as \"klaviyo_organic_sum_revenue_checkout_started\",\n klaviyo_persons.\"total_sum_revenue_cancelled_order\" as \"klaviyo_total_sum_revenue_cancelled_order\",\n klaviyo_persons.\"organic_sum_revenue_cancelled_order\" as \"klaviyo_organic_sum_revenue_cancelled_order\",\n klaviyo_persons.\"total_count_active_on_site\" as \"klaviyo_total_count_active_on_site\",\n klaviyo_persons.\"total_count_viewed_product\" as \"klaviyo_total_count_viewed_product\",\n klaviyo_persons.\"total_count_ordered_product\" as \"klaviyo_total_count_ordered_product\",\n klaviyo_persons.\"total_count_placed_order\" as \"klaviyo_total_count_placed_order\",\n klaviyo_persons.\"total_count_refunded_order\" as \"klaviyo_total_count_refunded_order\",\n klaviyo_persons.\"total_count_cancelled_order\" as \"klaviyo_total_count_cancelled_order\",\n klaviyo_persons.\"total_count_fulfilled_order\" as \"klaviyo_total_count_fulfilled_order\",\n klaviyo_persons.\"total_count_received_email\" as \"klaviyo_total_count_received_email\",\n klaviyo_persons.\"total_count_clicked_email\" as \"klaviyo_total_count_clicked_email\",\n klaviyo_persons.\"total_count_opened_email\" as \"klaviyo_total_count_opened_email\",\n klaviyo_persons.\"total_count_bounced_email\" as \"klaviyo_total_count_bounced_email\",\n klaviyo_persons.\"total_count_marked_email_as_spam\" as \"klaviyo_total_count_marked_email_as_spam\",\n klaviyo_persons.\"total_count_dropped_email\" as \"klaviyo_total_count_dropped_email\",\n klaviyo_persons.\"total_count_subscribed_to_list\" as \"klaviyo_total_count_subscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed_to_list\" as \"klaviyo_total_count_unsubscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed\" as \"klaviyo_total_count_unsubscribed\",\n klaviyo_persons.\"total_count_updated_email_preferences\" as \"klaviyo_total_count_updated_email_preferences\",\n klaviyo_persons.\"total_count_subscribed_to_back_in_stock\" as \"klaviyo_total_count_subscribed_to_back_in_stock\",\n klaviyo_persons.\"total_count_merged_profile\" as \"klaviyo_total_count_merged_profile\",\n klaviyo_persons.\"total_count_received_sms\" as \"klaviyo_total_count_received_sms\",\n klaviyo_persons.\"total_count_clicked_sms\" as \"klaviyo_total_count_clicked_sms\",\n klaviyo_persons.\"total_count_consented_to_receive_sms\" as \"klaviyo_total_count_consented_to_receive_sms\",\n klaviyo_persons.\"total_count_sent_sms\" as \"klaviyo_total_count_sent_sms\",\n klaviyo_persons.\"total_count_unsubscribed_from_sms\" as \"klaviyo_total_count_unsubscribed_from_sms\",\n klaviyo_persons.\"total_count_failed_to_deliver_sms\" as \"klaviyo_total_count_failed_to_deliver_sms\",\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__orders", "model.klaviyo.klaviyo__events", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_order_key", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__orders_attribution"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_order_key',\n partition_by={\n \"field\": \"created_timestamp\",\n \"data_type\": \"timestamp\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n -- just grab new + newly updated orders\n {% if is_incremental() %}\n where updated_timestamp >= (select max(updated_timestamp) from {{ this }})\n {% endif %}\n\n), events as (\n\n select \n *\n from {{ ref('klaviyo__events') }}\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n\n -- only grab the events for users who are in the new increment of orders\n {% if is_incremental() %}\n and lower(person_email) in (select distinct lower(email) from orders)\n {% endif %}\n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and {{ dbt.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= (\n case when events.type like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n {{ dbt_utils.star(from=ref('shopify__orders'), except=['source_relation']) }},\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n {{ dbt_utils.generate_surrogate_key(['order_id', 'source_relation']) }} as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__orders_attribution.sql", "original_file_path": "models/shopify_holistic_reporting__orders_attribution.sql", "name": "shopify_holistic_reporting__orders_attribution", "alias": "shopify_holistic_reporting__orders_attribution", "checksum": {"name": "sha256", "checksum": "ca9ca8a2f8194fa4b238b02db078d3e4f48b469a030f751d0d7c9a1eb4cc41dc"}, "tags": [], "refs": [["shopify__orders"], ["klaviyo__events"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Table of Shopify orders, enriched with a last-touch attribution model associating orders (as conversions) to campaigns or flows in Klaviyo. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with orders. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. \nSimilar to the Klaviyo app, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nRefer to the Klaviyo package [README](https://github.com/fivetran/dbt_klaviyo#attribution-lookback-window) for more details.\nMaterialized incrementally by default.\n", "columns": {"app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "The Klaviyo campaign that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "The Klaviyo flow that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed Klaviyo flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed Klaviyo flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of Klaviyo campaign that the order is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_id": {"name": "last_touch_event_id", "description": "Unique Klaviyo event id of the interaction the customer had with the campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_occurred_at": {"name": "last_touch_event_occurred_at", "description": "Timestamp of when the customer interacted with the attributed campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "Type of interaction that the customer had with the campaign or flow. Will be one of the event types specified by the `klaviyo__eligible_attribution_events` variable. By default, this is just email opens, email clicks, and sms opens.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_name": {"name": "last_touch_integration_name", "description": "Name of the platform that tracked the campaign/flow interaction (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_category": {"name": "last_touch_integration_category", "description": "Use-case category of the platform that sent the campaign/flow interaction event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where Klaviyo campaign/flow data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_campaign": {"name": "count_interactions_with_campaign", "description": "The count of distinct attributable events the customer had with the campaign throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_flow": {"name": "count_interactions_with_flow", "description": "The count of distinct attributable events the customer had with the flow throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__orders_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "shopify_holistic", "unique_key": "unique_order_key", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.864822, "compiled_code": "\n\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n -- just grab new + newly updated orders\n \n where updated_timestamp >= (select max(updated_timestamp) from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\")\n \n\n), events as (\n\n select \n *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n\n -- only grab the events for users who are in the new increment of orders\n \n and lower(person_email) in (select distinct lower(email) from orders)\n \n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and \n (\n ((orders.created_timestamp)::date - (events.occurred_at)::date)\n * 24 + date_part('hour', (orders.created_timestamp)::timestamp) - date_part('hour', (events.occurred_at)::timestamp))\n <= (\n case when events.type like '%sms%' then 24\n else 120 end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n \"order_id\",\n \"processed_timestamp\",\n \"updated_timestamp\",\n \"user_id\",\n \"total_discounts\",\n \"total_line_items_price\",\n \"total_price\",\n \"total_tax\",\n \"source_name\",\n \"subtotal_price\",\n \"has_taxes_included\",\n \"total_weight\",\n \"landing_site_base_url\",\n \"location_id\",\n \"name\",\n \"note\",\n \"number\",\n \"order_number\",\n \"cancel_reason\",\n \"cancelled_timestamp\",\n \"cart_token\",\n \"checkout_token\",\n \"closed_timestamp\",\n \"created_timestamp\",\n \"currency\",\n \"customer_id\",\n \"email\",\n \"financial_status\",\n \"fulfillment_status\",\n \"processing_method\",\n \"referring_site\",\n \"billing_address_address_1\",\n \"billing_address_address_2\",\n \"billing_address_city\",\n \"billing_address_company\",\n \"billing_address_country\",\n \"billing_address_country_code\",\n \"billing_address_first_name\",\n \"billing_address_last_name\",\n \"billing_address_latitude\",\n \"billing_address_longitude\",\n \"billing_address_name\",\n \"billing_address_phone\",\n \"billing_address_province\",\n \"billing_address_province_code\",\n \"billing_address_zip\",\n \"browser_ip\",\n \"has_buyer_accepted_marketing\",\n \"total_shipping_price_set\",\n \"shipping_address_address_1\",\n \"shipping_address_address_2\",\n \"shipping_address_city\",\n \"shipping_address_company\",\n \"shipping_address_country\",\n \"shipping_address_country_code\",\n \"shipping_address_first_name\",\n \"shipping_address_last_name\",\n \"shipping_address_latitude\",\n \"shipping_address_longitude\",\n \"shipping_address_name\",\n \"shipping_address_phone\",\n \"shipping_address_province\",\n \"shipping_address_province_code\",\n \"shipping_address_zip\",\n \"is_test_order\",\n \"token\",\n \"_fivetran_synced\",\n \"shipping_cost\",\n \"order_adjustment_amount\",\n \"order_adjustment_tax_amount\",\n \"refund_subtotal\",\n \"refund_total_tax\",\n \"order_adjusted_total\",\n \"line_item_count\",\n \"customer_order_seq_number\",\n \"new_vs_repeat\",\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n \n \nmd5(cast(coalesce(cast(order_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__daily_customer_metrics"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "raw_code": "with shopify_daily as (\n\n select *\n from {{ ref('int__daily_shopify_customer_orders') }}\n\n), klaviyo_daily as (\n\n select *\n from {{ ref('int__daily_klaviyo_user_metrics') }}\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n {{ dbt_utils.star(from=ref('int__daily_shopify_customer_orders'), relation_alias='shopify_daily', prefix='shopify_',\n except=['source_relation','date_day', 'email', 'last_touch_variation_id', 'last_touch_flow_name', 'last_touch_campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'last_touch_campaign_subject_line', 'last_touch_campaign_type']) }},\n shopify_daily.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__daily_klaviyo_user_metrics'), relation_alias='klaviyo_daily', prefix='klaviyo_',\n except=['source_relation','date_day', 'email', 'variation_id', 'flow_name', 'campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'campaign_subject_line', 'campaign_type']) }},\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__daily_customer_metrics.sql", "original_file_path": "models/shopify_holistic_reporting__daily_customer_metrics.sql", "name": "shopify_holistic_reporting__daily_customer_metrics", "alias": "shopify_holistic_reporting__daily_customer_metrics", "checksum": {"name": "sha256", "checksum": "971dcdccf88ae613b19a18bff1ebb515f480d4fd5fb1c4ae1c8cfb3c0d07072d"}, "tags": [], "refs": [["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"], ["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"]], "sources": [], "metrics": [], "description": "Table that aggregates Shopify and Klaviyo metrics to the day-customer-campaign or day-customer-flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that non-attributed (to Klaviyo at least) orders and interactions (someone with null campaign_id/flow_id) are included in this table. \nFor **Klaviyo**: **Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\nNote that 0-activity days will not appear. \n", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_orders": {"name": "shopify_total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_price": {"name": "shopify_total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_line_items": {"name": "shopify_count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_line_items_price": {"name": "shopify_total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_discounts": {"name": "shopify_total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_tax": {"name": "shopify_total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_shipping_cost": {"name": "shopify_total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_subtotal": {"name": "shopify_total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_tax": {"name": "shopify_total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_cancelled_orders": {"name": "shopify_count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_products": {"name": "shopify_count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_product_variants": {"name": "shopify_count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_sum_quantity": {"name": "shopify_sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_amount": {"name": "shopify_total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_tax_amount": {"name": "shopify_total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__daily_customer_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1666978250.845842, "compiled_code": "with shopify_daily as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_shopify_customer_orders\"\n\n), klaviyo_daily as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_klaviyo_user_metrics\"\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n shopify_daily.\"total_orders\" as \"shopify_total_orders\",\n shopify_daily.\"total_price\" as \"shopify_total_price\",\n shopify_daily.\"count_line_items\" as \"shopify_count_line_items\",\n shopify_daily.\"total_line_items_price\" as \"shopify_total_line_items_price\",\n shopify_daily.\"total_discounts\" as \"shopify_total_discounts\",\n shopify_daily.\"total_tax\" as \"shopify_total_tax\",\n shopify_daily.\"total_shipping_cost\" as \"shopify_total_shipping_cost\",\n shopify_daily.\"total_refund_subtotal\" as \"shopify_total_refund_subtotal\",\n shopify_daily.\"total_refund_tax\" as \"shopify_total_refund_tax\",\n shopify_daily.\"count_cancelled_orders\" as \"shopify_count_cancelled_orders\",\n shopify_daily.\"count_products\" as \"shopify_count_products\",\n shopify_daily.\"count_product_variants\" as \"shopify_count_product_variants\",\n shopify_daily.\"sum_quantity\" as \"shopify_sum_quantity\",\n shopify_daily.\"total_order_adjustment_amount\" as \"shopify_total_order_adjustment_amount\",\n shopify_daily.\"total_order_adjustment_tax_amount\" as \"shopify_total_order_adjustment_tax_amount\",\n shopify_daily.source_relation as shopify_source_relation,\n\n klaviyo_daily.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_daily.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_daily.\"sum_revenue_refunded_order\" as \"klaviyo_sum_revenue_refunded_order\",\n klaviyo_daily.\"sum_revenue_placed_order\" as \"klaviyo_sum_revenue_placed_order\",\n klaviyo_daily.\"sum_revenue_ordered_product\" as \"klaviyo_sum_revenue_ordered_product\",\n klaviyo_daily.\"sum_revenue_checkout_started\" as \"klaviyo_sum_revenue_checkout_started\",\n klaviyo_daily.\"sum_revenue_cancelled_order\" as \"klaviyo_sum_revenue_cancelled_order\",\n klaviyo_daily.\"count_active_on_site\" as \"klaviyo_count_active_on_site\",\n klaviyo_daily.\"count_viewed_product\" as \"klaviyo_count_viewed_product\",\n klaviyo_daily.\"count_ordered_product\" as \"klaviyo_count_ordered_product\",\n klaviyo_daily.\"count_placed_order\" as \"klaviyo_count_placed_order\",\n klaviyo_daily.\"count_refunded_order\" as \"klaviyo_count_refunded_order\",\n klaviyo_daily.\"count_received_email\" as \"klaviyo_count_received_email\",\n klaviyo_daily.\"count_clicked_email\" as \"klaviyo_count_clicked_email\",\n klaviyo_daily.\"count_opened_email\" as \"klaviyo_count_opened_email\",\n klaviyo_daily.\"count_marked_email_as_spam\" as \"klaviyo_count_marked_email_as_spam\",\n klaviyo_daily.\"count_unsubscribed\" as \"klaviyo_count_unsubscribed\",\n klaviyo_daily.\"count_received_sms\" as \"klaviyo_count_received_sms\",\n klaviyo_daily.\"count_clicked_sms\" as \"klaviyo_count_clicked_sms\",\n klaviyo_daily.\"count_sent_sms\" as \"klaviyo_count_sent_sms\",\n klaviyo_daily.\"count_unsubscribed_from_sms\" as \"klaviyo_count_unsubscribed_from_sms\",\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\""}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.enabled_vars", "macro.dbt_utils.group_by"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_shopify_customer_orders"], "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "raw_code": "with orders as (\n\n select *\n from {{ ref('shopify_holistic_reporting__orders_attribution') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( {{ dbt.date_trunc('day', 'created_timestamp') }} as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n {% endif %}\n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n {% if var('shopify__using_order_adjustment', true) %}\n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n {% endif %}\n \n\n from join_orders\n {{ dbt_utils.group_by(n=10)}}\n)\n\nselect *\nfrom daily_order_metrics", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_shopify_customer_orders.sql", "original_file_path": "models/intermediate/int__daily_shopify_customer_orders.sql", "name": "int__daily_shopify_customer_orders", "alias": "int__daily_shopify_customer_orders", "checksum": {"name": "sha256", "checksum": "b65804247d30fd6de43e7664b88ca4bec4f8dd66670d3e11f974348f7e48d361"}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"], ["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_orders": {"name": "total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_line_items": {"name": "count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_cost": {"name": "total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_subtotal": {"name": "total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_tax": {"name": "total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_cancelled_orders": {"name": "count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_products": {"name": "count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_product_variants": {"name": "count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sum_quantity": {"name": "sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_amount": {"name": "total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_tax_amount": {"name": "total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_shopify_customer_orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.884725, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( date_trunc('day', created_timestamp) as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n \n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n \n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n \n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n \n \n\n from join_orders\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\nselect *\nfrom daily_order_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_shopify_customer_orders\""}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.type_string", "macro.fivetran_utils.string_agg", "macro.fivetran_utils.max_bool"], "nodes": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__shopify_customer_rollup"], "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup", "raw_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from {{ ref('shopify__customers') }}\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"cast(customer_id as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as customer_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n {{ fivetran_utils.max_bool(\"has_accepted_marketing\") }} as has_accepted_marketing,\n {{ fivetran_utils.max_bool(\"case when customer_index = 1 then is_tax_exempt else null end\") }} as is_tax_exempt, -- since this changes every year\n {{ fivetran_utils.max_bool(\"is_verified_email\") }} as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n {% set cols = adapter.get_columns_in_relation(ref('shopify__customers')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'customer_id', 'phone', 'first_name', 'last_name', 'created_timestamp', 'first_order_timestamp', 'most_recent_order_timestamp',\n 'updated_timestamp', 'lifetime_total_spent', 'lifetime_total_refunded', 'lifetime_total_amount', 'lifetime_count_orders', 'average_order_value', 'has_accepted_marketing',\n 'is_tax_exempt', 'is_verified_email', 'default_address_id', 'account_state'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when customer_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__shopify_customer_rollup.sql", "original_file_path": "models/intermediate/int__shopify_customer_rollup.sql", "name": "int__shopify_customer_rollup", "alias": "int__shopify_customer_rollup", "checksum": {"name": "sha256", "checksum": "d37acd343225ac3650b815e17b114111489d47684a4f12cfec198eaf042b9c0f"}, "tags": [], "refs": [["shopify__customers"], ["shopify__customers"]], "sources": [], "metrics": [], "description": "Table rolling up shopify customer accounts to the email level. In theory, these should be 1:1, but under certain circumstances (ie bots) one email can be associated with multiple customer_ids.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_shopify_account_made_at": {"name": "first_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_shopify_account_made_at": {"name": "last_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_ids": {"name": "customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_at": {"name": "first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_order_at": {"name": "last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__shopify_customer_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.888824, "compiled_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n \n string_agg(cast(customer_id as TEXT), ', ')\n\n as customer_ids,\n \n string_agg(distinct cast(phone as TEXT), ', ')\n\n as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n \n\n bool_or( has_accepted_marketing )\n\n as has_accepted_marketing,\n \n\n bool_or( case when customer_index = 1 then is_tax_exempt else null end )\n\n as is_tax_exempt, -- since this changes every year\n \n\n bool_or( is_verified_email )\n\n as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__shopify_customer_rollup\""}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_klaviyo_user_metrics"], "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "raw_code": "with events as (\n\n select *\n from {{ ref('klaviyo__events') }}\n\n), pivot_out_events as (\n \n select \n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=10) }}\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_klaviyo_user_metrics.sql", "original_file_path": "models/intermediate/int__daily_klaviyo_user_metrics.sql", "name": "int__daily_klaviyo_user_metrics", "alias": "int__daily_klaviyo_user_metrics", "checksum": {"name": "sha256", "checksum": "a44be436c9e300571568f40fc3f1989ec67c7df9889088b39ca651268761e357"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_klaviyo_user_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.8794382, "compiled_code": "with events as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n\n), pivot_out_events as (\n \n select \n cast( date_trunc('day', occurred_at) as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_klaviyo_user_metrics\""}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.dbt.type_string"], "nodes": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__klaviyo_person_rollup"], "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "raw_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from {{ ref('klaviyo__persons') }}\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"person_id\", \"', '\") }} as person_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone_number as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n {% set cols = adapter.get_columns_in_relation(ref('klaviyo__persons')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'person_id', 'phone_number', 'full_name', 'created_at', 'updated_at', 'count_total_campaigns', 'count_total_flows',\n 'first_event_at', 'last_event_at', 'first_campaign_touch_at', 'last_campaign_touch_at', 'first_flow_touch_at', 'last_flow_touch_at'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when person_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__klaviyo_person_rollup.sql", "original_file_path": "models/intermediate/int__klaviyo_person_rollup.sql", "name": "int__klaviyo_person_rollup", "alias": "int__klaviyo_person_rollup", "checksum": {"name": "sha256", "checksum": "a690c8461137c9efef7723af8c9b1c595075381a9e0cebff45f27c2e73425c7c"}, "tags": [], "refs": [["klaviyo__persons"], ["klaviyo__persons"]], "sources": [], "metrics": [], "description": "Table rolling up Klaviyo person accounts to the email level. In theory, these should certainly be 1:1, but under certain circumstances emails can be sent with multiple person_ids from the Klaviyo API.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_ids": {"name": "person_ids", "description": "A comma-separated aggregated list of Klaviyo IDs for the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers for this person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_klaviyo_account_made_at": {"name": "first_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_klaviyo_account_made_at": {"name": "last_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was last created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__klaviyo_person_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.894349, "compiled_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n \n string_agg(person_id, ', ')\n\n as person_ids,\n \n string_agg(distinct cast(phone_number as TEXT), ', ')\n\n as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n \n \n \n \n \n \n , max(case when person_index = 1 then address_1 else null end) as address_1\n \n \n \n , max(case when person_index = 1 then address_2 else null end) as address_2\n \n \n \n , max(case when person_index = 1 then city else null end) as city\n \n \n \n , max(case when person_index = 1 then country else null end) as country\n \n \n \n , max(case when person_index = 1 then zip else null end) as zip\n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then latitude else null end) as latitude\n \n \n \n , max(case when person_index = 1 then longitude else null end) as longitude\n \n \n \n , max(case when person_index = 1 then organization else null end) as organization\n \n \n \n \n \n , max(case when person_index = 1 then region else null end) as region\n \n \n \n , max(case when person_index = 1 then timezone else null end) as timezone\n \n \n \n , max(case when person_index = 1 then title else null end) as title\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then total_sum_revenue_refunded_order else null end) as total_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_refunded_order else null end) as organic_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_placed_order else null end) as total_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_placed_order else null end) as organic_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_ordered_product else null end) as total_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_ordered_product else null end) as organic_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_checkout_started else null end) as total_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_checkout_started else null end) as organic_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_cancelled_order else null end) as total_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_cancelled_order else null end) as organic_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_active_on_site else null end) as total_count_active_on_site\n \n \n \n , max(case when person_index = 1 then total_count_viewed_product else null end) as total_count_viewed_product\n \n \n \n , max(case when person_index = 1 then total_count_ordered_product else null end) as total_count_ordered_product\n \n \n \n , max(case when person_index = 1 then total_count_placed_order else null end) as total_count_placed_order\n \n \n \n , max(case when person_index = 1 then total_count_refunded_order else null end) as total_count_refunded_order\n \n \n \n , max(case when person_index = 1 then total_count_cancelled_order else null end) as total_count_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_fulfilled_order else null end) as total_count_fulfilled_order\n \n \n \n , max(case when person_index = 1 then total_count_received_email else null end) as total_count_received_email\n \n \n \n , max(case when person_index = 1 then total_count_clicked_email else null end) as total_count_clicked_email\n \n \n \n , max(case when person_index = 1 then total_count_opened_email else null end) as total_count_opened_email\n \n \n \n , max(case when person_index = 1 then total_count_bounced_email else null end) as total_count_bounced_email\n \n \n \n , max(case when person_index = 1 then total_count_marked_email_as_spam else null end) as total_count_marked_email_as_spam\n \n \n \n , max(case when person_index = 1 then total_count_dropped_email else null end) as total_count_dropped_email\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_list else null end) as total_count_subscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_to_list else null end) as total_count_unsubscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed else null end) as total_count_unsubscribed\n \n \n \n , max(case when person_index = 1 then total_count_updated_email_preferences else null end) as total_count_updated_email_preferences\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_back_in_stock else null end) as total_count_subscribed_to_back_in_stock\n \n \n \n , max(case when person_index = 1 then total_count_merged_profile else null end) as total_count_merged_profile\n \n \n \n , max(case when person_index = 1 then total_count_received_sms else null end) as total_count_received_sms\n \n \n \n , max(case when person_index = 1 then total_count_clicked_sms else null end) as total_count_clicked_sms\n \n \n \n , max(case when person_index = 1 then total_count_consented_to_receive_sms else null end) as total_count_consented_to_receive_sms\n \n \n \n , max(case when person_index = 1 then total_count_sent_sms else null end) as total_count_sent_sms\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_from_sms else null end) as total_count_unsubscribed_from_sms\n \n \n \n , max(case when person_index = 1 then total_count_failed_to_deliver_sms else null end) as total_count_failed_to_deliver_sms\n \n \n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__klaviyo_person_rollup\""}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__customer')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__customer"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__customer"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be"}, "created_at": 1666978250.489658, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__customer"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line_refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3"}, "created_at": 1666978250.4994612, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_refund_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n group by order_line_refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line_refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec"}, "created_at": 1666978250.503477, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e"}, "created_at": 1666978250.507039, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d"}, "created_at": 1666978250.510592, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variant_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product_variant')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product_variant"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation", "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product_variant"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e"}, "created_at": 1666978250.514442, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variant_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\"\n group by variant_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product_variant"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__transaction')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92"}, "created_at": 1666978250.518018, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__transaction"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659"}, "created_at": 1666978250.5213451, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n refund_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n group by refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_adjustment_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_adjustment')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation", "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_adjustment"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207"}, "created_at": 1666978250.525098, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_adjustment_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\"\n group by order_adjustment_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_adjustment"}, "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__campaign_campaign_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__campaign_campaign_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__campaign_campaign_id", "alias": "not_null_stg_klaviyo__campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__campaign_campaign_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.597206, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_id", "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation", "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26"}, "created_at": 1666978250.598593, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n group by campaign_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__event_event_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__event_event_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__event_event_id", "alias": "not_null_stg_klaviyo__event_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__event_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.60223, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa"}, "created_at": 1666978250.6035252, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__flow_flow_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__flow_flow_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__flow_flow_id", "alias": "not_null_stg_klaviyo__flow_flow_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__flow_flow_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.607263, "compiled_code": "\n \n \n\n\n\nselect flow_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\nwhere flow_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_id", "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation", "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270"}, "created_at": 1666978250.6085272, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n group by flow_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "integration_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__integration_integration_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__integration_integration_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__integration_integration_id", "alias": "not_null_stg_klaviyo__integration_integration_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__integration_integration_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.612082, "compiled_code": "\n \n \n\n\n\nselect integration_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\nwhere integration_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "integration_id", "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["integration_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation", "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596"}, "created_at": 1666978250.6133718, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n integration_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\n group by integration_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_person_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_person_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_person_id", "alias": "not_null_stg_klaviyo__person_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6169689, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "unique_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "unique_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "unique_stg_klaviyo__person_email", "alias": "unique_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/unique_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1666978250.6186209, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_email", "alias": "not_null_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.619875, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161"}, "created_at": 1666978250.6211982, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "metric_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__metric_metric_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__metric_metric_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__metric_metric_id", "alias": "not_null_stg_klaviyo__metric_metric_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__metric_metric_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.624727, "compiled_code": "\n \n \n\n\n\nselect metric_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\nwhere metric_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "metric_id", "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["metric_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation", "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58"}, "created_at": 1666978250.625969, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n metric_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\n group by metric_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__events_event_id"], "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__events_event_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__events_event_id", "alias": "not_null_klaviyo__events_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__events_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.672668, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.klaviyo__events"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98"}, "created_at": 1666978250.673972, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__events"}, "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__person_campaign_flow_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__person_campaign_flow_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__person_campaign_flow_person_id", "alias": "not_null_klaviyo__person_campaign_flow_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__person_campaign_flow_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.677459, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "last_touch_campaign_id", "last_touch_flow_id", "variation_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation", "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd"}, "created_at": 1666978250.678729, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n group by person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__campaigns_campaign_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__campaigns_campaign_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__campaigns_campaign_variation_key", "alias": "not_null_klaviyo__campaigns_campaign_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__campaigns_campaign_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6828039, "compiled_code": "\n \n \n\n\n\nselect campaign_variation_key\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\"\nwhere campaign_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_variation_key", "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64"}, "created_at": 1666978250.684433, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_variation_key, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\"\n group by campaign_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__flows_flow_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__flows_flow_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__flows_flow_variation_key", "alias": "not_null_klaviyo__flows_flow_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__flows_flow_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6878269, "compiled_code": "\n \n \n\n\n\nselect flow_variation_key\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\"\nwhere flow_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_variation_key", "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e"}, "created_at": 1666978250.689277, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_variation_key, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\"\n group by flow_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_person_id", "alias": "not_null_klaviyo__persons_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.692893, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "unique_klaviyo__persons_email"], "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "unique_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "unique_klaviyo__persons_email", "alias": "unique_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/unique_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1666978250.694391, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_email"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_email", "alias": "not_null_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.695638, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329"}, "created_at": 1666978250.696954, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__event_attribution_event_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__event_attribution_event_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__event_attribution_event_id", "alias": "not_null_int_klaviyo__event_attribution_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__event_attribution_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.709464, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10"}, "created_at": 1666978250.711071, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variation_id", "source_relation", "last_touch_campaign_id", "last_touch_flow_id"], "model": "{{ get_where_subquery(ref('int_klaviyo__campaign_flow_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id", "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61"}, "created_at": 1666978250.714446, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n group by variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__campaign_flow_metrics"}, "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__person_metrics_person_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__person_metrics_person_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__person_metrics_person_id", "alias": "not_null_int_klaviyo__person_metrics_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__person_metrics_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.718294, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.int_klaviyo__person_metrics"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c"}, "created_at": 1666978250.7199628, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__person_metrics"}, "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "unique_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "unique_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "unique_shopify__customer_cohorts_customer_cohort_id", "alias": "unique_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/unique_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.799266, "compiled_code": "\n \n \n\nselect\n customer_cohort_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is not null\ngroup by customer_cohort_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "not_null_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "not_null_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "not_null_shopify__customer_cohorts_customer_cohort_id", "alias": "not_null_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/not_null_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.800738, "compiled_code": "\n \n \n\n\n\nselect customer_cohort_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce"}, "created_at": 1666978250.802013, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696"}, "created_at": 1666978250.805644, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__products')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__products"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__products"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa"}, "created_at": 1666978250.809152, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__products\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__products"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__order_lines')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40"}, "created_at": 1666978250.812595, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__order_lines"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__transactions')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb"}, "created_at": 1666978250.816239, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__transactions"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers__order_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3"}, "created_at": 1666978250.8206341, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n customer_id, source_relation\n from __dbt__cte__shopify__customers__order_aggregates\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers__order_aggregates"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders__order_line_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders__order_line_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders__order_line_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04"}, "created_at": 1666978250.824349, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n order_id, source_relation\n from __dbt__cte__shopify__orders__order_line_aggregates\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders__order_line_aggregates"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["email", "klaviyo_source_relation", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__customer_enhanced')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__customer_enhanced"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc"}, "created_at": 1666978250.86548, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n email, klaviyo_source_relation, shopify_source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\"\n group by email, klaviyo_source_relation, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__customer_enhanced"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "email", "klaviyo_source_relation", "shopify_source_relation", "campaign_id", "flow_id", "variation_id"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__daily_customer_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id", "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__daily_customer_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f"}, "created_at": 1666978250.869279, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\"\n group by date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__daily_customer_metrics"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__orders_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a"}, "created_at": 1666978250.873759, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, shopify_source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n group by order_id, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__orders_attribution"}}, "sources": {"source.shopify_source.shopify.order": {"fqn": ["shopify_source", "shopify", "order"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": true, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "buyer_accepts_marketing": {"name": "buyer_accepts_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_at": {"name": "cancelled_at", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_at": {"name": "closed_at", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxes_included": {"name": "taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order\"", "created_at": 1666978250.894924}, "source.shopify_source.shopify.customer": {"fqn": ["shopify_source", "shopify", "customer"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.customer", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "customer", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "customer", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "accepts_marketing": {"name": "accepts_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "state": {"name": "state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_exempt": {"name": "tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "verified_email": {"name": "verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"customer\"", "created_at": 1666978250.895052}, "source.shopify_source.shopify.order_line": {"fqn": ["shopify_source", "shopify", "order_line"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item for an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gift_card": {"name": "gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line\"", "created_at": 1666978250.895159}, "source.shopify_source.shopify.order_line_refund": {"fqn": ["shopify_source", "shopify", "order_line_refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line_refund", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line_refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line_refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item refund in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line_refund\"", "created_at": 1666978250.8952498}, "source.shopify_source.shopify.product": {"fqn": ["shopify_source", "shopify", "product"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_at": {"name": "published_at", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product\"", "created_at": 1666978250.895343}, "source.shopify_source.shopify.product_variant": {"fqn": ["shopify_source", "shopify", "product_variant"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product_variant", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product_variant", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product_variant", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product_variant\"", "created_at": 1666978250.8954592}, "source.shopify_source.shopify.transaction": {"fqn": ["shopify_source", "shopify", "transaction"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.transaction", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "transaction", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "transaction", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"transaction\"", "created_at": 1666978250.8955772}, "source.shopify_source.shopify.refund": {"fqn": ["shopify_source", "shopify", "refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.refund", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a refund within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"refund\"", "created_at": 1666978250.895663}, "source.shopify_source.shopify.order_adjustment": {"fqn": ["shopify_source", "shopify", "order_adjustment"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_adjustment", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_adjustment", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_adjustment", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_adjustment\"", "created_at": 1666978250.896023}, "source.klaviyo_source.klaviyo.campaign": {"fqn": ["klaviyo_source", "klaviyo", "campaign"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.campaign", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "campaign", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "campaign", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table capturing email campaigns in Klaviyo. \n", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "send_time": {"name": "send_time", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_label": {"name": "status_label", "description": "The label of the status as it appears in the UI (should be the same as `status`).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"campaign\"", "created_at": 1666978250.896149}, "source.klaviyo_source.klaviyo.event": {"fqn": ["klaviyo_source", "klaviyo", "event"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.event", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "event", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "event", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"_variation": {"name": "_variation", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "datetime": {"name": "datetime", "description": "Timestamp of when the event was recorded in Klaviyo. Should be the same/nominally off from `timestamp`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timestamp": {"name": "timestamp", "description": "Timestamp of when the event was triggered. Should be the same/nominally off from `datetime`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "property_value": {"name": "property_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"event\"", "created_at": 1666978250.896244}, "source.klaviyo_source.klaviyo.flow": {"fqn": ["klaviyo_source", "klaviyo", "flow"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.flow", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "flow", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "flow", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "trigger": {"name": "trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_filter": {"name": "customer_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"flow\"", "created_at": 1666978250.896333}, "source.klaviyo_source.klaviyo.integration": {"fqn": ["klaviyo_source", "klaviyo", "integration"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.integration", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "integration", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "integration", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"integration\"", "created_at": 1666978250.896429}, "source.klaviyo_source.klaviyo.person": {"fqn": ["klaviyo_source", "klaviyo", "person"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.person", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "person", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "person", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"id": {"name": "id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "Person's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "Person's surname.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"person\"", "created_at": 1666978250.8965278}, "source.klaviyo_source.klaviyo.metric": {"fqn": ["klaviyo_source", "klaviyo", "metric"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.metric", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "metric", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "metric", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"metric\"", "created_at": 1666978250.8966122}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.80124, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801569, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801728, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801877, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.802023, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"unique_id": "macro.dbt_postgres.postgres__get_catalog", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8035789, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"unique_id": "macro.dbt_postgres.postgres_get_relations", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.804519, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"unique_id": "macro.dbt_postgres.postgres__create_table_as", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.81249, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.813251, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"unique_id": "macro.dbt_postgres.postgres__create_schema", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.813741, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"unique_id": "macro.dbt_postgres.postgres__drop_schema", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.814206, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.814974, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8154922, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"unique_id": "macro.dbt_postgres.postgres__information_schema_name", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.815756, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"unique_id": "macro.dbt_postgres.postgres__list_schemas", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.816268, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.817156, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8186848, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8190022, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.819463, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.819853, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"unique_id": "macro.dbt_postgres.postgres_escape_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.820517, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.820838, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.821728, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.822033, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"unique_id": "macro.dbt_postgres.postgres__copy_grants", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.822207, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.823073, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.82433, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"unique_id": "macro.dbt_postgres.postgres__dateadd", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8248682, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"unique_id": "macro.dbt_postgres.postgres__listagg", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.825839, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"unique_id": "macro.dbt_postgres.postgres__datediff", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8306859, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"unique_id": "macro.dbt_postgres.postgres__any_value", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.831041, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"unique_id": "macro.dbt_postgres.postgres__last_day", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.831846, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"unique_id": "macro.dbt_postgres.postgres__split_part", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.832552, "supported_languages": null}, "macro.dbt.run_hooks": {"unique_id": "macro.dbt.run_hooks", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834265, "supported_languages": null}, "macro.dbt.make_hook_config": {"unique_id": "macro.dbt.make_hook_config", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834542, "supported_languages": null}, "macro.dbt.before_begin": {"unique_id": "macro.dbt.before_begin", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.83474, "supported_languages": null}, "macro.dbt.in_transaction": {"unique_id": "macro.dbt.in_transaction", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834934, "supported_languages": null}, "macro.dbt.after_commit": {"unique_id": "macro.dbt.after_commit", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.835125, "supported_languages": null}, "macro.dbt.set_sql_header": {"unique_id": "macro.dbt.set_sql_header", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8357172, "supported_languages": null}, "macro.dbt.should_full_refresh": {"unique_id": "macro.dbt.should_full_refresh", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8361359, "supported_languages": null}, "macro.dbt.should_store_failures": {"unique_id": "macro.dbt.should_store_failures", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.836564, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"unique_id": "macro.dbt.snapshot_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8372312, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"unique_id": "macro.dbt.default__snapshot_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.837743, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"unique_id": "macro.dbt.strategy_dispatch", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.842988, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"unique_id": "macro.dbt.snapshot_hash_arguments", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.84331, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"unique_id": "macro.dbt.default__snapshot_hash_arguments", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.843683, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"unique_id": "macro.dbt.snapshot_timestamp_strategy", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.844765, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"unique_id": "macro.dbt.snapshot_string_as_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978248.845, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"unique_id": "macro.dbt.default__snapshot_string_as_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.845245, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.84733, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"unique_id": "macro.dbt.snapshot_check_strategy", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8492758, "supported_languages": null}, "macro.dbt.create_columns": {"unique_id": "macro.dbt.create_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.854902, "supported_languages": null}, "macro.dbt.default__create_columns": {"unique_id": "macro.dbt.default__create_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.855333, "supported_languages": null}, "macro.dbt.post_snapshot": {"unique_id": "macro.dbt.post_snapshot", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.855576, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"unique_id": "macro.dbt.default__post_snapshot", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.85571, "supported_languages": null}, "macro.dbt.get_true_sql": {"unique_id": "macro.dbt.get_true_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.85592, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"unique_id": "macro.dbt.default__get_true_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.856103, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"unique_id": "macro.dbt.snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.856423, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"unique_id": "macro.dbt.default__snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.857951, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"unique_id": "macro.dbt.build_snapshot_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8582342, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"unique_id": "macro.dbt.default__build_snapshot_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.858579, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"unique_id": "macro.dbt.build_snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.85919, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"unique_id": "macro.dbt.materialization_snapshot_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.868392, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"unique_id": "macro.dbt.materialization_test_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1666978248.871536, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"unique_id": "macro.dbt.get_test_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.872302, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"unique_id": "macro.dbt.default__get_test_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.872829, "supported_languages": null}, "macro.dbt.get_where_subquery": {"unique_id": "macro.dbt.get_where_subquery", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.873632, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"unique_id": "macro.dbt.default__get_where_subquery", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.874188, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"unique_id": "macro.dbt.get_quoted_csv", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.876409, "supported_languages": null}, "macro.dbt.diff_columns": {"unique_id": "macro.dbt.diff_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8771992, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"unique_id": "macro.dbt.diff_column_data_types", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.878148, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"unique_id": "macro.dbt.get_merge_update_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.878477, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"unique_id": "macro.dbt.default__get_merge_update_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.87967, "supported_languages": null}, "macro.dbt.get_merge_sql": {"unique_id": "macro.dbt.get_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, predicates=none) -%}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, predicates) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.886053, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"unique_id": "macro.dbt.default__get_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, predicates) -%}\n {%- set predicates = [] if predicates is none else [] + 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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.888522, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"unique_id": "macro.dbt.get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978248.8889291, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\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 );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n );\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.890111, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.890513, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8914409, "supported_languages": null}, "macro.dbt.is_incremental": {"unique_id": "macro.dbt.is_incremental", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.892533, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"unique_id": "macro.dbt.get_incremental_append_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8937972, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"unique_id": "macro.dbt.default__get_incremental_append_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.894134, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8943942, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.894818, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"unique_id": "macro.dbt.get_incremental_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8950882, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"unique_id": "macro.dbt.default__get_incremental_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.895453, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8957329, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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[\"predicates\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.896109, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"unique_id": "macro.dbt.get_incremental_default_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8963861, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"unique_id": "macro.dbt.default__get_incremental_default_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8966331, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"unique_id": "macro.dbt.get_insert_into_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8971221, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"unique_id": "macro.dbt.materialization_incremental_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "name": "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('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, '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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.904452, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"unique_id": "macro.dbt.incremental_validate_on_schema_change", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9119518, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"unique_id": "macro.dbt.check_for_schema_changes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.913791, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"unique_id": "macro.dbt.sync_column_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.915554, "supported_languages": null}, "macro.dbt.process_schema_changes": {"unique_id": "macro.dbt.process_schema_changes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9167738, "supported_languages": null}, "macro.dbt.materialization_table_default": {"unique_id": "macro.dbt.materialization_table_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.920505, "supported_languages": ["sql"]}, "macro.dbt.get_create_table_as_sql": {"unique_id": "macro.dbt.get_create_table_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.921391, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"unique_id": "macro.dbt.default__get_create_table_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.921748, "supported_languages": null}, "macro.dbt.create_table_as": {"unique_id": "macro.dbt.create_table_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.922404, "supported_languages": null}, "macro.dbt.default__create_table_as": {"unique_id": "macro.dbt.default__create_table_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.923023, "supported_languages": null}, "macro.dbt.materialization_view_default": {"unique_id": "macro.dbt.materialization_view_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/view.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1666978248.9268868, "supported_languages": ["sql"]}, "macro.dbt.handle_existing_table": {"unique_id": "macro.dbt.handle_existing_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9275799, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"unique_id": "macro.dbt.default__handle_existing_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.927934, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"unique_id": "macro.dbt.create_or_replace_view", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.930275, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"unique_id": "macro.dbt.get_create_view_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.930915, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"unique_id": "macro.dbt.default__get_create_view_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9311612, "supported_languages": null}, "macro.dbt.create_view_as": {"unique_id": "macro.dbt.create_view_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9314308, "supported_languages": null}, "macro.dbt.default__create_view_as": {"unique_id": "macro.dbt.default__create_view_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.93182, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"unique_id": "macro.dbt.materialization_seed_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9365, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"unique_id": "macro.dbt.create_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9431622, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"unique_id": "macro.dbt.default__create_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9445162, "supported_languages": null}, "macro.dbt.reset_csv_table": {"unique_id": "macro.dbt.reset_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.944869, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"unique_id": "macro.dbt.default__reset_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9455302, "supported_languages": null}, "macro.dbt.get_csv_sql": {"unique_id": "macro.dbt.get_csv_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.945793, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"unique_id": "macro.dbt.default__get_csv_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.945972, "supported_languages": null}, "macro.dbt.get_binding_char": {"unique_id": "macro.dbt.get_binding_char", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.94616, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"unique_id": "macro.dbt.default__get_binding_char", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946314, "supported_languages": null}, "macro.dbt.get_batch_size": {"unique_id": "macro.dbt.get_batch_size", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946531, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"unique_id": "macro.dbt.default__get_batch_size", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946686, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"unique_id": "macro.dbt.get_seed_column_quoted_csv", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.947422, "supported_languages": null}, "macro.dbt.load_csv_rows": {"unique_id": "macro.dbt.load_csv_rows", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.947812, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"unique_id": "macro.dbt.default__load_csv_rows", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.95001, "supported_languages": null}, "macro.dbt.generate_alias_name": {"unique_id": "macro.dbt.generate_alias_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9508312, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"unique_id": "macro.dbt.default__generate_alias_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9511628, "supported_languages": null}, "macro.dbt.generate_schema_name": {"unique_id": "macro.dbt.generate_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.951954, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"unique_id": "macro.dbt.default__generate_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.952321, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"unique_id": "macro.dbt.generate_schema_name_for_env", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.952765, "supported_languages": null}, "macro.dbt.generate_database_name": {"unique_id": "macro.dbt.generate_database_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.953413, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"unique_id": "macro.dbt.default__generate_database_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.953774, "supported_languages": null}, "macro.dbt.default__test_relationships": {"unique_id": "macro.dbt.default__test_relationships", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.954325, "supported_languages": null}, "macro.dbt.default__test_not_null": {"unique_id": "macro.dbt.default__test_not_null", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.954839, "supported_languages": null}, "macro.dbt.default__test_unique": {"unique_id": "macro.dbt.default__test_unique", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.955266, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"unique_id": "macro.dbt.default__test_accepted_values", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.956192, "supported_languages": null}, "macro.dbt.statement": {"unique_id": "macro.dbt.statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.958616, "supported_languages": null}, "macro.dbt.noop_statement": {"unique_id": "macro.dbt.noop_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9596128, "supported_languages": null}, "macro.dbt.run_query": {"unique_id": "macro.dbt.run_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.960045, "supported_languages": null}, "macro.dbt.convert_datetime": {"unique_id": "macro.dbt.convert_datetime", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.962732, "supported_languages": null}, "macro.dbt.dates_in_range": {"unique_id": "macro.dbt.dates_in_range", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.96457, "supported_languages": null}, "macro.dbt.partition_range": {"unique_id": "macro.dbt.partition_range", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.965728, "supported_languages": null}, "macro.dbt.py_current_timestring": {"unique_id": "macro.dbt.py_current_timestring", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966099, "supported_languages": null}, "macro.dbt.except": {"unique_id": "macro.dbt.except", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966675, "supported_languages": null}, "macro.dbt.default__except": {"unique_id": "macro.dbt.default__except", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966785, "supported_languages": null}, "macro.dbt.replace": {"unique_id": "macro.dbt.replace", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.96734, "supported_languages": null}, "macro.dbt.default__replace": {"unique_id": "macro.dbt.default__replace", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.967576, "supported_languages": null}, "macro.dbt.concat": {"unique_id": "macro.dbt.concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968002, "supported_languages": null}, "macro.dbt.default__concat": {"unique_id": "macro.dbt.default__concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9681761, "supported_languages": null}, "macro.dbt.length": {"unique_id": "macro.dbt.length", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968652, "supported_languages": null}, "macro.dbt.default__length": {"unique_id": "macro.dbt.default__length", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968813, "supported_languages": null}, "macro.dbt.dateadd": {"unique_id": "macro.dbt.dateadd", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.969453, "supported_languages": null}, "macro.dbt.default__dateadd": {"unique_id": "macro.dbt.default__dateadd", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.969725, "supported_languages": null}, "macro.dbt.intersect": {"unique_id": "macro.dbt.intersect", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9702559, "supported_languages": null}, "macro.dbt.default__intersect": {"unique_id": "macro.dbt.default__intersect", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.970369, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"unique_id": "macro.dbt.escape_single_quotes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97086, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"unique_id": "macro.dbt.default__escape_single_quotes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9710588, "supported_languages": null}, "macro.dbt.right": {"unique_id": "macro.dbt.right", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.971592, "supported_languages": null}, "macro.dbt.default__right": {"unique_id": "macro.dbt.default__right", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.971903, "supported_languages": null}, "macro.dbt.listagg": {"unique_id": "macro.dbt.listagg", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.972886, "supported_languages": null}, "macro.dbt.default__listagg": {"unique_id": "macro.dbt.default__listagg", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.973463, "supported_languages": null}, "macro.dbt.datediff": {"unique_id": "macro.dbt.datediff", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.974019, "supported_languages": null}, "macro.dbt.default__datediff": {"unique_id": "macro.dbt.default__datediff", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.974241, "supported_languages": null}, "macro.dbt.safe_cast": {"unique_id": "macro.dbt.safe_cast", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97474, "supported_languages": null}, "macro.dbt.default__safe_cast": {"unique_id": "macro.dbt.default__safe_cast", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9749372, "supported_languages": null}, "macro.dbt.hash": {"unique_id": "macro.dbt.hash", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9753861, "supported_languages": null}, "macro.dbt.default__hash": {"unique_id": "macro.dbt.default__hash", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.975612, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"unique_id": "macro.dbt.cast_bool_to_text", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976039, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"unique_id": "macro.dbt.default__cast_bool_to_text", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9762728, "supported_languages": null}, "macro.dbt.any_value": {"unique_id": "macro.dbt.any_value", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976759, "supported_languages": null}, "macro.dbt.default__any_value": {"unique_id": "macro.dbt.default__any_value", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976937, "supported_languages": null}, "macro.dbt.position": {"unique_id": "macro.dbt.position", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.977437, "supported_languages": null}, "macro.dbt.default__position": {"unique_id": "macro.dbt.default__position", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.977628, "supported_languages": null}, "macro.dbt.string_literal": {"unique_id": "macro.dbt.string_literal", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.978165, "supported_languages": null}, "macro.dbt.default__string_literal": {"unique_id": "macro.dbt.default__string_literal", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.978328, "supported_languages": null}, "macro.dbt.type_string": {"unique_id": "macro.dbt.type_string", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97969, "supported_languages": null}, "macro.dbt.default__type_string": {"unique_id": "macro.dbt.default__type_string", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9799209, "supported_languages": null}, "macro.dbt.type_timestamp": {"unique_id": "macro.dbt.type_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980254, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"unique_id": "macro.dbt.default__type_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980478, "supported_languages": null}, "macro.dbt.type_float": {"unique_id": "macro.dbt.type_float", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98072, "supported_languages": null}, "macro.dbt.default__type_float": {"unique_id": "macro.dbt.default__type_float", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980936, "supported_languages": null}, "macro.dbt.type_numeric": {"unique_id": "macro.dbt.type_numeric", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9811652, "supported_languages": null}, "macro.dbt.default__type_numeric": {"unique_id": "macro.dbt.default__type_numeric", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9814348, "supported_languages": null}, "macro.dbt.type_bigint": {"unique_id": "macro.dbt.type_bigint", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.981676, "supported_languages": null}, "macro.dbt.default__type_bigint": {"unique_id": "macro.dbt.default__type_bigint", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98192, "supported_languages": null}, "macro.dbt.type_int": {"unique_id": "macro.dbt.type_int", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982176, "supported_languages": null}, "macro.dbt.default__type_int": {"unique_id": "macro.dbt.default__type_int", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982392, "supported_languages": null}, "macro.dbt.type_boolean": {"unique_id": "macro.dbt.type_boolean", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982621, "supported_languages": null}, "macro.dbt.default__type_boolean": {"unique_id": "macro.dbt.default__type_boolean", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9828322, "supported_languages": null}, "macro.dbt.array_concat": {"unique_id": "macro.dbt.array_concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.983426, "supported_languages": null}, "macro.dbt.default__array_concat": {"unique_id": "macro.dbt.default__array_concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.983615, "supported_languages": null}, "macro.dbt.bool_or": {"unique_id": "macro.dbt.bool_or", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984046, "supported_languages": null}, "macro.dbt.default__bool_or": {"unique_id": "macro.dbt.default__bool_or", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984189, "supported_languages": null}, "macro.dbt.last_day": {"unique_id": "macro.dbt.last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984763, "supported_languages": null}, "macro.dbt.default_last_day": {"unique_id": "macro.dbt.default_last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9851599, "supported_languages": null}, "macro.dbt.default__last_day": {"unique_id": "macro.dbt.default__last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98542, "supported_languages": null}, "macro.dbt.split_part": {"unique_id": "macro.dbt.split_part", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9862778, "supported_languages": null}, "macro.dbt.default__split_part": {"unique_id": "macro.dbt.default__split_part", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.986536, "supported_languages": null}, "macro.dbt._split_part_negative": {"unique_id": "macro.dbt._split_part_negative", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.986955, "supported_languages": null}, "macro.dbt.date_trunc": {"unique_id": "macro.dbt.date_trunc", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.987481, "supported_languages": null}, "macro.dbt.default__date_trunc": {"unique_id": "macro.dbt.default__date_trunc", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98766, "supported_languages": null}, "macro.dbt.array_construct": {"unique_id": "macro.dbt.array_construct", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.988287, "supported_languages": null}, "macro.dbt.default__array_construct": {"unique_id": "macro.dbt.default__array_construct", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9886389, "supported_languages": null}, "macro.dbt.array_append": {"unique_id": "macro.dbt.array_append", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.989132, "supported_languages": null}, "macro.dbt.default__array_append": {"unique_id": "macro.dbt.default__array_append", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9893272, "supported_languages": null}, "macro.dbt.create_schema": {"unique_id": "macro.dbt.create_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9899478, "supported_languages": null}, "macro.dbt.default__create_schema": {"unique_id": "macro.dbt.default__create_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990227, "supported_languages": null}, "macro.dbt.drop_schema": {"unique_id": "macro.dbt.drop_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990458, "supported_languages": null}, "macro.dbt.default__drop_schema": {"unique_id": "macro.dbt.default__drop_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990731, "supported_languages": null}, "macro.dbt.current_timestamp": {"unique_id": "macro.dbt.current_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991463, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"unique_id": "macro.dbt.default__current_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991683, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"unique_id": "macro.dbt.snapshot_get_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991883, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"unique_id": "macro.dbt.default__snapshot_get_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992032, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"unique_id": "macro.dbt.current_timestamp_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992259, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992363, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.992587, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.992836, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"unique_id": "macro.dbt.get_create_index_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9936059, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"unique_id": "macro.dbt.default__get_create_index_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9938922, "supported_languages": null}, "macro.dbt.create_indexes": {"unique_id": "macro.dbt.create_indexes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9941351, "supported_languages": null}, "macro.dbt.default__create_indexes": {"unique_id": "macro.dbt.default__create_indexes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.994743, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"unique_id": "macro.dbt.make_intermediate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999233, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"unique_id": "macro.dbt.default__make_intermediate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999491, "supported_languages": null}, "macro.dbt.make_temp_relation": {"unique_id": "macro.dbt.make_temp_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999813, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"unique_id": "macro.dbt.default__make_temp_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.000245, "supported_languages": null}, "macro.dbt.make_backup_relation": {"unique_id": "macro.dbt.make_backup_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.000596, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"unique_id": "macro.dbt.default__make_backup_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.001083, "supported_languages": null}, "macro.dbt.drop_relation": {"unique_id": "macro.dbt.drop_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0014179, "supported_languages": null}, "macro.dbt.default__drop_relation": {"unique_id": "macro.dbt.default__drop_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0017269, "supported_languages": null}, "macro.dbt.truncate_relation": {"unique_id": "macro.dbt.truncate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0019898, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"unique_id": "macro.dbt.default__truncate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.002261, "supported_languages": null}, "macro.dbt.rename_relation": {"unique_id": "macro.dbt.rename_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.002563, "supported_languages": null}, "macro.dbt.default__rename_relation": {"unique_id": "macro.dbt.default__rename_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0029519, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"unique_id": "macro.dbt.get_or_create_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.003314, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"unique_id": "macro.dbt.default__get_or_create_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0040991, "supported_languages": null}, "macro.dbt.load_cached_relation": {"unique_id": "macro.dbt.load_cached_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.004524, "supported_languages": null}, "macro.dbt.load_relation": {"unique_id": "macro.dbt.load_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.004745, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"unique_id": "macro.dbt.drop_relation_if_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.005018, "supported_languages": null}, "macro.dbt.collect_freshness": {"unique_id": "macro.dbt.collect_freshness", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.005773, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"unique_id": "macro.dbt.default__collect_freshness", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.00639, "supported_languages": null}, "macro.dbt.copy_grants": {"unique_id": "macro.dbt.copy_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.008689, "supported_languages": null}, "macro.dbt.default__copy_grants": {"unique_id": "macro.dbt.default__copy_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.008847, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.009075, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.009235, "supported_languages": null}, "macro.dbt.should_revoke": {"unique_id": "macro.dbt.should_revoke", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.009742, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"unique_id": "macro.dbt.get_show_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.0101042, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"unique_id": "macro.dbt.default__get_show_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.010348, "supported_languages": null}, "macro.dbt.get_grant_sql": {"unique_id": "macro.dbt.get_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0107079, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"unique_id": "macro.dbt.default__get_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.010998, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"unique_id": "macro.dbt.get_revoke_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011328, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"unique_id": "macro.dbt.default__get_revoke_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011598, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"unique_id": "macro.dbt.get_dcl_statement_list", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011922, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"unique_id": "macro.dbt.default__get_dcl_statement_list", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.012907, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"unique_id": "macro.dbt.call_dcl_statements", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013269, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"unique_id": "macro.dbt.default__call_dcl_statements", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013636, "supported_languages": null}, "macro.dbt.apply_grants": {"unique_id": "macro.dbt.apply_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013963, "supported_languages": null}, "macro.dbt.default__apply_grants": {"unique_id": "macro.dbt.default__apply_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.015867, "supported_languages": null}, "macro.dbt.alter_column_comment": {"unique_id": "macro.dbt.alter_column_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017081, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"unique_id": "macro.dbt.default__alter_column_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017438, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"unique_id": "macro.dbt.alter_relation_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0177448, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"unique_id": "macro.dbt.default__alter_relation_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017995, "supported_languages": null}, "macro.dbt.persist_docs": {"unique_id": "macro.dbt.persist_docs", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0184069, "supported_languages": null}, "macro.dbt.default__persist_docs": {"unique_id": "macro.dbt.default__persist_docs", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.019199, "supported_languages": null}, "macro.dbt.get_catalog": {"unique_id": "macro.dbt.get_catalog", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02127, "supported_languages": null}, "macro.dbt.default__get_catalog": {"unique_id": "macro.dbt.default__get_catalog", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0216682, "supported_languages": null}, "macro.dbt.information_schema_name": {"unique_id": "macro.dbt.information_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.021941, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"unique_id": "macro.dbt.default__information_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.022161, "supported_languages": null}, "macro.dbt.list_schemas": {"unique_id": "macro.dbt.list_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02242, "supported_languages": null}, "macro.dbt.default__list_schemas": {"unique_id": "macro.dbt.default__list_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.022874, "supported_languages": null}, "macro.dbt.check_schema_exists": {"unique_id": "macro.dbt.check_schema_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.023202, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"unique_id": "macro.dbt.default__check_schema_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.023638, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"unique_id": "macro.dbt.list_relations_without_caching", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.0238981, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"unique_id": "macro.dbt.default__list_relations_without_caching", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.024121, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"unique_id": "macro.dbt.get_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.026696, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"unique_id": "macro.dbt.default__get_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027053, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"unique_id": "macro.dbt.sql_convert_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027509, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"unique_id": "macro.dbt.get_columns_in_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027772, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"unique_id": "macro.dbt.default__get_columns_in_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02833, "supported_languages": null}, "macro.dbt.alter_column_type": {"unique_id": "macro.dbt.alter_column_type", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.028667, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"unique_id": "macro.dbt.default__alter_column_type", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.029532, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"unique_id": "macro.dbt.alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.029928, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.031126, "supported_languages": null}, "macro.dbt.build_ref_function": {"unique_id": "macro.dbt.build_ref_function", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.033428, "supported_languages": null}, "macro.dbt.build_source_function": {"unique_id": "macro.dbt.build_source_function", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0341618, "supported_languages": null}, "macro.dbt.build_config_dict": {"unique_id": "macro.dbt.build_config_dict", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {%- for key in model.config.config_keys_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[key] -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0348842, "supported_languages": null}, "macro.dbt.py_script_postfix": {"unique_id": "macro.dbt.py_script_postfix", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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 def __repr__(self):\n return '{{ this }}'\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.035468, "supported_languages": null}, "macro.dbt.py_script_comment": {"unique_id": "macro.dbt.py_script_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.035567, "supported_languages": null}, "macro.dbt.test_unique": {"unique_id": "macro.dbt.test_unique", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.036387, "supported_languages": null}, "macro.dbt.test_not_null": {"unique_id": "macro.dbt.test_not_null", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.036704, "supported_languages": null}, "macro.dbt.test_accepted_values": {"unique_id": "macro.dbt.test_accepted_values", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.037111, "supported_languages": null}, "macro.dbt.test_relationships": {"unique_id": "macro.dbt.test_relationships", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.037486, "supported_languages": null}, "macro.shopify_source.get_order_columns": {"unique_id": "macro.shopify_source.get_order_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_columns", "macro_sql": "{% macro get_order_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_id\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_discounts\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_line_items_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_float()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"subtotal_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"taxes_included\", \"datatype\": \"boolean\", \"alias\": \"has_taxes_included\"},\n {\"name\": \"total_weight\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"landing_site_base_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cancel_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"cancelled_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"cancelled_timestamp\"},\n {\"name\": \"cart_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"checkout_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"closed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"closed_timestamp\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"financial_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"processing_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"referring_site\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"browser_ip\", \"datatype\": dbt.type_string()},\n {\"name\": \"buyer_accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_buyer_accepted_marketing\"},\n {\"name\": \"total_shipping_price_set\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\", \"alias\": \"is_test_order\"},\n {\"name\": \"token\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.058986, "supported_languages": null}, "macro.shopify_source.get_customer_columns": {"unique_id": "macro.shopify_source.get_customer_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_accepted_marketing\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"default_address_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"customer_id\"},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"orders_count\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"state\", \"datatype\": dbt.type_string(), \"alias\": \"account_state\"},\n {\"name\": \"tax_exempt\", \"datatype\": \"boolean\", \"alias\": \"is_tax_exempt\"},\n {\"name\": \"total_spent\", \"datatype\": dbt.type_float()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"verified_email\", \"datatype\": \"boolean\", \"alias\": \"is_verified_email\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.061436, "supported_languages": null}, "macro.shopify_source.get_order_line_refund_columns": {"unique_id": "macro.shopify_source.get_order_line_refund_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_refund_columns", "macro_sql": "{% macro get_order_line_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_refund_id\"},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_line_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_float()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"restock_type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0628, "supported_languages": null}, "macro.shopify_source.get_order_line_columns": {"unique_id": "macro.shopify_source.get_order_line_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_columns", "macro_sql": "{% macro get_order_line_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"fulfillable_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"gift_card\", \"datatype\": \"boolean\", \"alias\": \"is_gift_card\"},\n {\"name\": \"grams\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_id\"},\n {\"name\": \"index\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"pre_tax_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_charge_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_for_shipping_jan_3_rd_2020\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_shipping_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_shipping_interval_unit_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_subscription_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"total_discount\", \"datatype\": dbt.type_float()},\n {\"name\": \"variant_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.066646, "supported_languages": null}, "macro.shopify_source.get_product_columns": {"unique_id": "macro.shopify_source.get_product_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"handle\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"product_id\"},\n {\"name\": \"product_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"published_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"published_timestamp\"},\n {\"name\": \"published_scope\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.068531, "supported_languages": null}, "macro.shopify_source.get_product_variant_columns": {"unique_id": "macro.shopify_source.get_product_variant_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_variant_columns", "macro_sql": "{% macro get_product_variant_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"variant_id\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_item_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"image_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"position\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"compare_at_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"inventory_management\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"barcode\", \"datatype\": dbt.type_string()},\n {\"name\": \"grams\", \"datatype\": dbt.type_float()},\n {\"name\": \"inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"weight\", \"datatype\": dbt.type_float()},\n {\"name\": \"weight_unit\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_3\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"old_inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.072196, "supported_languages": null}, "macro.shopify_source.get_transaction_columns": {"unique_id": "macro.shopify_source.get_transaction_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_transaction_columns", "macro_sql": "{% macro get_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"transaction_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"device_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"gateway\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"message\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"parent_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"payment_avs_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_bin\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_cvv_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency_exchange_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_adjustment\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_original_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_final_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"error_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{% if target.type in ('redshift','postgres') %}\n {{ columns.append({\"name\": \"authorization\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"authorization\"}) }}\n{% else %}\n {\"name\": \"authorization\", \"datatype\": dbt.type_string()}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.077108, "supported_languages": null}, "macro.shopify_source.get_refund_columns": {"unique_id": "macro.shopify_source.get_refund_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"refund_id\"},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"restock\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0784798, "supported_languages": null}, "macro.shopify_source.get_order_adjustment_columns": {"unique_id": "macro.shopify_source.get_order_adjustment_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_adjustment_columns", "macro_sql": "{% macro get_order_adjustment_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_adjustment_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"tax_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.079697, "supported_languages": null}, "macro.dbt_utils.xdb_deprecation_warning_without_replacement": {"unique_id": "macro.dbt_utils.xdb_deprecation_warning_without_replacement", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/deprecated/xdb_deprecation_warning.sql", "original_file_path": "macros/cross_db_utils/deprecated/xdb_deprecation_warning.sql", "name": "xdb_deprecation_warning_without_replacement", "macro_sql": "{% macro xdb_deprecation_warning_without_replacement(macro, package, model) %}\n {%- set error_message = \"Warning: the `\" ~ macro ~\"` macro is deprecated and will be removed in a future version of the package, once equivalent functionality is implemented in dbt Core. The \" ~ package ~ \".\" ~ model ~ \" model triggered this warning.\" -%}\n {%- do exceptions.warn(error_message) -%}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.080482, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"unique_id": "macro.dbt_utils.get_url_host", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0811808, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"unique_id": "macro.dbt_utils.default__get_url_host", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n split_part(\n split_part(\n replace(\n replace(\n replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n type_string()\n )}}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.08196, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"unique_id": "macro.dbt_utils.get_url_path", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.082858, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"unique_id": "macro.dbt_utils.default__get_url_path", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n replace(\n replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ position(\"'/'\", stripped_url) }}, 0),\n {{ position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n split_part(\n right(\n stripped_url,\n length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ safe_cast(\n parsed_path,\n type_string()\n )}}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.083701, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"unique_id": "macro.dbt_utils.get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.084235, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"unique_id": "macro.dbt_utils.default__get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 = split_part(split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0846589, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"unique_id": "macro.dbt_utils.test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.086123, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.087831, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"unique_id": "macro.dbt_utils.test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.089329, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"unique_id": "macro.dbt_utils.default__test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.091118, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"unique_id": "macro.dbt_utils.test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.092376, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"unique_id": "macro.dbt_utils.default__test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.092907, "supported_languages": null}, "macro.dbt_utils.test_recency": {"unique_id": "macro.dbt_utils.test_recency", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, group_by_columns)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.093906, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"unique_id": "macro.dbt_utils.default__test_recency", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, group_by_columns) %}\n\n{% set threshold = dateadd(datepart, interval * -1, current_timestamp_backcompat()) %}\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 max({{field}}) as most_recent\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0947928, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"unique_id": "macro.dbt_utils.test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0954921, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"unique_id": "macro.dbt_utils.default__test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.096268, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"unique_id": "macro.dbt_utils.test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.097514, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"unique_id": "macro.dbt_utils.default__test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0982301, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"unique_id": "macro.dbt_utils.test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.099169, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"unique_id": "macro.dbt_utils.default__test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0997021, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"unique_id": "macro.dbt_utils.test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.100415, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"unique_id": "macro.dbt_utils.default__test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(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\nselect *\nfrom (\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 {{ model }}\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1010911, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.101984, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.102886, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"unique_id": "macro.dbt_utils.test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1036742, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"unique_id": "macro.dbt_utils.default__test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 {{ except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.104127, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"unique_id": "macro.dbt_utils.test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None, condition='1=1') %}\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 {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name, condition)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "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": 1666978249.104885, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"unique_id": "macro.dbt_utils.default__test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name, condition) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nwith meet_condition as (\n select * from {{ model }} where {{ condition }}\n)\n\nselect\n {{ column_list }}\nfrom meet_condition\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.105448, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"unique_id": "macro.dbt_utils.test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.106446, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"unique_id": "macro.dbt_utils.default__test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.108104, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"unique_id": "macro.dbt_utils.test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.10938, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"unique_id": "macro.dbt_utils.default__test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 {{ type_timestamp() }})= cast({{ dateadd(datepart, interval, previous_column_name) }} as {{ type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.110749, "supported_languages": null}, "macro.dbt_utils.test_equality": {"unique_id": "macro.dbt_utils.test_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.111785, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"unique_id": "macro.dbt_utils.default__test_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 {{ except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.11303, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"unique_id": "macro.dbt_utils.test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.113844, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"unique_id": "macro.dbt_utils.default__test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.114273, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.119081, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1213481, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"unique_id": "macro.dbt_utils.pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.121994, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"unique_id": "macro.dbt_utils.default__pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.122247, "supported_languages": null}, "macro.dbt_utils._is_relation": {"unique_id": "macro.dbt_utils._is_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.123075, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"unique_id": "macro.dbt_utils.pretty_time", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.123721, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"unique_id": "macro.dbt_utils.default__pretty_time", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.124136, "supported_languages": null}, "macro.dbt_utils.log_info": {"unique_id": "macro.dbt_utils.log_info", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.124738, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"unique_id": "macro.dbt_utils.default__log_info", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1249862, "supported_languages": null}, "macro.dbt_utils.slugify": {"unique_id": "macro.dbt_utils.slugify", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "name": "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\n{{ return(string) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.12575, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"unique_id": "macro.dbt_utils._is_ephemeral", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.127115, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"unique_id": "macro.dbt_utils.get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.128265, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"unique_id": "macro.dbt_utils.default__get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 {{ 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.129303, "supported_languages": null}, "macro.dbt_utils.date_spine": {"unique_id": "macro.dbt_utils.date_spine", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.129749, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"unique_id": "macro.dbt_utils.default__date_spine", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 \"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 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.130303, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"unique_id": "macro.dbt_utils.nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.130869, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"unique_id": "macro.dbt_utils.default__nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.131368, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"unique_id": "macro.dbt_utils.get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.132419, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.13363, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"unique_id": "macro.dbt_utils.get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.134788, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"unique_id": "macro.dbt_utils.default__get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1353679, "supported_languages": null}, "macro.dbt_utils.generate_series": {"unique_id": "macro.dbt_utils.generate_series", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.135628, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"unique_id": "macro.dbt_utils.default__generate_series", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.136338, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"unique_id": "macro.dbt_utils.get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.137582, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.139034, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.140102, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.140552, "supported_languages": null}, "macro.dbt_utils.star": {"unique_id": "macro.dbt_utils.star", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1416802, "supported_languages": null}, "macro.dbt_utils.default__star": {"unique_id": "macro.dbt_utils.default__star", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {%- do dbt_utils._is_relation(from, 'star') -%}\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\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 cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\n\n {%- if cols|length <= 0 -%}\n {{- return('*') -}}\n {%- else -%}\n {%- for col in cols %}\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}{{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\n {%- if not loop.last %},{{ '\\n ' }}{% endif %}\n {%- endfor -%}\n {% endif %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.143209, "supported_languages": null}, "macro.dbt_utils.unpivot": {"unique_id": "macro.dbt_utils.unpivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1450398, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"unique_id": "macro.dbt_utils.default__unpivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 {{ type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.1473742, "supported_languages": null}, "macro.dbt_utils.union_relations": {"unique_id": "macro.dbt_utils.union_relations", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1519842, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"unique_id": "macro.dbt_utils.default__union_relations", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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({{ string_literal(relation) }} as {{ 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 -%}", "resource_type": "macro", "tags": [], "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": 1666978249.1573231, "supported_languages": null}, "macro.dbt_utils.group_by": {"unique_id": "macro.dbt_utils.group_by", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1581671, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"unique_id": "macro.dbt_utils.default__group_by", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.158626, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"unique_id": "macro.dbt_utils.deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.159829, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"unique_id": "macro.dbt_utils.default__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160169, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"unique_id": "macro.dbt_utils.redshift__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160465, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"unique_id": "macro.dbt_utils.postgres__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160745, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"unique_id": "macro.dbt_utils.snowflake__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160979, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"unique_id": "macro.dbt_utils.bigquery__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.161279, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"unique_id": "macro.dbt_utils.surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.161974, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"unique_id": "macro.dbt_utils.default__surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 variable scoped to the dbt_utils package 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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1623302, "supported_languages": null}, "macro.dbt_utils.safe_add": {"unique_id": "macro.dbt_utils.safe_add", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1631649, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"unique_id": "macro.dbt_utils.default__safe_add", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1640399, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"unique_id": "macro.dbt_utils.nullcheck", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.16475, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"unique_id": "macro.dbt_utils.default__nullcheck", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.165239, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.167565, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.168202, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.1694431, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1701581, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"unique_id": "macro.dbt_utils.get_column_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.172082, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"unique_id": "macro.dbt_utils.default__get_column_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.174355, "supported_languages": null}, "macro.dbt_utils.pivot": {"unique_id": "macro.dbt_utils.pivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.176045, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"unique_id": "macro.dbt_utils.default__pivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 }} '{{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.177218, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.177962, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.179274, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"unique_id": "macro.dbt_utils.width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.181501, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"unique_id": "macro.dbt_utils.default__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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, type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.182132, "supported_languages": null}, "macro.dbt_utils.redshift__width_bucket": {"unique_id": "macro.dbt_utils.redshift__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "redshift__width_bucket", "macro_sql": "{% macro redshift__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 exactly at the bucket edge\n case\n when\n {{ dbt.safe_cast(expr, type_numeric() ) }} %\n {{ dbt.safe_cast(bin_size, 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.182743, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"unique_id": "macro.dbt_utils.snowflake__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.183019, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"unique_id": "macro.dbt_utils.get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.183661, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.184513, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"unique_id": "macro.dbt_utils.generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.185211, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"unique_id": "macro.dbt_utils.default__generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "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 \" ~ type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ hash(concat(fields)) }}\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "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": 1666978249.186099, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"unique_id": "macro.dbt_utils.get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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", "resource_type": "macro", "tags": [], "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": 1666978249.18672, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"unique_id": "macro.dbt_utils.default__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.18691, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.187129, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"unique_id": "macro.dbt_utils.degrees_to_radians", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1889029, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"unique_id": "macro.dbt_utils.haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.189544, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"unique_id": "macro.dbt_utils.default__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.191375, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"unique_id": "macro.dbt_utils.bigquery__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.192557, "supported_languages": null}, "macro.klaviyo_source.get_campaign_columns": {"unique_id": "macro.klaviyo_source.get_campaign_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_campaign_columns.sql", "original_file_path": "macros/get_campaign_columns.sql", "name": "get_campaign_columns", "macro_sql": "{% macro get_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"campaign_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email_template_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_segmented\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"send_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"sent_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_label\", \"datatype\": dbt.type_string()},\n {\"name\": \"subject\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.195486, "supported_languages": null}, "macro.klaviyo_source.get_metric_columns": {"unique_id": "macro.klaviyo_source.get_metric_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_metric_columns.sql", "original_file_path": "macros/get_metric_columns.sql", "name": "get_metric_columns", "macro_sql": "{% macro get_metric_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"integration_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.196935, "supported_languages": null}, "macro.klaviyo_source.get_flow_columns": {"unique_id": "macro.klaviyo_source.get_flow_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_flow_columns.sql", "original_file_path": "macros/get_flow_columns.sql", "name": "get_flow_columns", "macro_sql": "{% macro get_flow_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_filter\", \"datatype\": dbt.type_string()}\n] %}\n\n{% if target.type == 'databricks' %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": False} ) }}\n{% else %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": True} ) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.199243, "supported_languages": null}, "macro.klaviyo_source.get_integration_columns": {"unique_id": "macro.klaviyo_source.get_integration_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_integration_columns.sql", "original_file_path": "macros/get_integration_columns.sql", "name": "get_integration_columns", "macro_sql": "{% macro get_integration_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"category\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.2004428, "supported_languages": null}, "macro.klaviyo_source.get_person_columns": {"unique_id": "macro.klaviyo_source.get_person_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_person_columns.sql", "original_file_path": "macros/get_person_columns.sql", "name": "get_person_columns", "macro_sql": "{% macro get_person_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"city\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"latitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"longitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"organization\", \"datatype\": dbt.type_string()},\n {\"name\": \"phone_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"region\", \"datatype\": dbt.type_string()},\n {\"name\": \"timezone\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"zip\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__person_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.203687, "supported_languages": null}, "macro.klaviyo_source.get_event_columns": {"unique_id": "macro.klaviyo_source.get_event_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_event_columns.sql", "original_file_path": "macros/get_event_columns.sql", "name": "get_event_columns", "macro_sql": "{% macro get_event_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"_variation\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"datetime\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"flow_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"flow_message_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metric_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"person_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"timestamp\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"uuid\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_value\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__event_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.206198, "supported_languages": null}, "macro.spark_utils.get_tables": {"unique_id": "macro.spark_utils.get_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.213404, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"unique_id": "macro.spark_utils.get_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.214699, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"unique_id": "macro.spark_utils.get_statistic_columns", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.216099, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"unique_id": "macro.spark_utils.spark_optimize_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2171578, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.218202, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"unique_id": "macro.spark_utils.spark_analyze_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2194612, "supported_languages": null}, "macro.spark_utils.spark__concat": {"unique_id": "macro.spark_utils.spark__concat", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "name": "spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2199638, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"unique_id": "macro.spark_utils.spark__type_numeric", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "name": "spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.22029, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"unique_id": "macro.spark_utils.spark__dateadd", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.224378, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"unique_id": "macro.spark_utils.spark__datediff", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.234882, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"unique_id": "macro.spark_utils.spark__current_timestamp", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.235285, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.235389, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"unique_id": "macro.spark_utils.spark__split_part", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.236377, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.238977, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.239478, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.239879, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2402759, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"unique_id": "macro.spark_utils.assert_not_null", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.240934, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"unique_id": "macro.spark_utils.default__assert_not_null", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.241211, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"unique_id": "macro.spark_utils.spark__convert_timezone", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.241581, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"unique_id": "macro.fivetran_utils.enabled_vars", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.242218, "supported_languages": null}, "macro.fivetran_utils.percentile": {"unique_id": "macro.fivetran_utils.percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2435079, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"unique_id": "macro.fivetran_utils.default__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.243766, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"unique_id": "macro.fivetran_utils.redshift__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244024, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"unique_id": "macro.fivetran_utils.bigquery__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244243, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"unique_id": "macro.fivetran_utils.postgres__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244458, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"unique_id": "macro.fivetran_utils.spark__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.24468, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"unique_id": "macro.fivetran_utils.pivot_json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "name": "pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2453718, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"unique_id": "macro.fivetran_utils.persist_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.246445, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"unique_id": "macro.fivetran_utils.json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.247937, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"unique_id": "macro.fivetran_utils.default__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.248545, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"unique_id": "macro.fivetran_utils.redshift__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2489548, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"unique_id": "macro.fivetran_utils.bigquery__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2493272, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"unique_id": "macro.fivetran_utils.postgres__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.249695, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"unique_id": "macro.fivetran_utils.snowflake__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2500842, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"unique_id": "macro.fivetran_utils.spark__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.250456, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"unique_id": "macro.fivetran_utils.max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251173, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"unique_id": "macro.fivetran_utils.default__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251322, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"unique_id": "macro.fivetran_utils.snowflake__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251483, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"unique_id": "macro.fivetran_utils.bigquery__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251643, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"unique_id": "macro.fivetran_utils.calculated_fields", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.252386, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"unique_id": "macro.fivetran_utils.seed_data_helper", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25338, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"unique_id": "macro.fivetran_utils.fill_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "name": "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.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 {% endfor %}\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2543192, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"unique_id": "macro.fivetran_utils.string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25506, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"unique_id": "macro.fivetran_utils.default__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25525, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"unique_id": "macro.fivetran_utils.snowflake__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2554429, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"unique_id": "macro.fivetran_utils.redshift__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.255636, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"unique_id": "macro.fivetran_utils.spark__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2558331, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"unique_id": "macro.fivetran_utils.timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260175, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"unique_id": "macro.fivetran_utils.default__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260431, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260658, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2608771, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.263434, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"unique_id": "macro.fivetran_utils.try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.264889, "supported_languages": null}, "macro.fivetran_utils.default__safe_cast": {"unique_id": "macro.fivetran_utils.default__safe_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.265105, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"unique_id": "macro.fivetran_utils.redshift__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.265514, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"unique_id": "macro.fivetran_utils.postgres__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2659369, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"unique_id": "macro.fivetran_utils.snowflake__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.266135, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"unique_id": "macro.fivetran_utils.bigquery__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.266319, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"unique_id": "macro.fivetran_utils.spark__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2665012, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"unique_id": "macro.fivetran_utils.source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2673259, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"unique_id": "macro.fivetran_utils.default__source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.268212, "supported_languages": null}, "macro.fivetran_utils.first_value": {"unique_id": "macro.fivetran_utils.first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269011, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"unique_id": "macro.fivetran_utils.default__first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269305, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"unique_id": "macro.fivetran_utils.redshift__first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269618, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"unique_id": "macro.fivetran_utils.add_dbt_source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2700748, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"unique_id": "macro.fivetran_utils.add_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "name": "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.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 {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2718651, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"unique_id": "macro.fivetran_utils.union_relations", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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_utils.string_literal(relation) }} as {{ dbt_utils.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", "resource_type": "macro", "tags": [], "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": 1666978249.2774742, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"unique_id": "macro.fivetran_utils.union_tables", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.277979, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"unique_id": "macro.fivetran_utils.snowflake_seed_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2785852, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"unique_id": "macro.fivetran_utils.fill_staging_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2807648, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"unique_id": "macro.fivetran_utils.quote_column", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark') %}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2816792, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"unique_id": "macro.fivetran_utils.json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2827232, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"unique_id": "macro.fivetran_utils.default__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2829592, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"unique_id": "macro.fivetran_utils.snowflake__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2831948, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"unique_id": "macro.fivetran_utils.redshift__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2834508, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"unique_id": "macro.fivetran_utils.bigquery__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.283681, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"unique_id": "macro.fivetran_utils.postgres__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.283935, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"unique_id": "macro.fivetran_utils.collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.285204, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"unique_id": "macro.fivetran_utils.default__collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.286698, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"unique_id": "macro.fivetran_utils.timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.287744, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"unique_id": "macro.fivetran_utils.default__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.28798, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2882, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"unique_id": "macro.fivetran_utils.redshift__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.288428, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"unique_id": "macro.fivetran_utils.postgres__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.288641, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"unique_id": "macro.fivetran_utils.spark__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289002, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"unique_id": "macro.fivetran_utils.ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289453, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"unique_id": "macro.fivetran_utils.default__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289598, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"unique_id": "macro.fivetran_utils.snowflake__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289731, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.290717, "supported_languages": null}, "macro.fivetran_utils.union_data": {"unique_id": "macro.fivetran_utils.union_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.292854, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"unique_id": "macro.fivetran_utils.default__union_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% elif var(union_database_variable, none) %}\n\n {% set relations = [] %}\n\n {% for database in var(union_database_variable) %}\n\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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% else %}\n\n select * \n from {{ var(default_variable) }}\n\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.296416, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"unique_id": "macro.fivetran_utils.dummy_coalesce_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2987, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"unique_id": "macro.fivetran_utils.array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.299219, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"unique_id": "macro.fivetran_utils.default__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2993631, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"unique_id": "macro.fivetran_utils.redshift__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2995079, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"unique_id": "macro.fivetran_utils.empty_variable_warning", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.300174, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"unique_id": "macro.fivetran_utils.enabled_vars_one_true", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.300826, "supported_languages": null}}, "docs": {"dbt.__overview__": {"unique_id": "dbt.__overview__", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "overview.md", "original_file_path": "docs/overview.md", "name": "__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"}, "shopify_source._fivetran_synced": {"unique_id": "shopify_source._fivetran_synced", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "docs.md", "original_file_path": "models/docs.md", "name": "_fivetran_synced", "block_contents": "The time when a record was last updated by Fivetran."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {"seed.shopify_holistic_reporting_integration_tests.flow_snowflake": [{"resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "flow_snowflake"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow_snowflake", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow_snowflake.csv", "original_file_path": "seeds/flow_snowflake.csv", "name": "flow_snowflake", "alias": "flow_snowflake", "checksum": {"name": "sha256", "checksum": "6bdc1fd92ee1a5bd818f2c9dc35cb33e0b4549d4d0b325569e0518843ce02711"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}, "enabled": "{{ true if target.type == 'snowflake' else false }}"}, "created_at": 1666978249.664493, "config_call_dict": {}}]}, "parent_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": [], "seed.shopify_holistic_reporting_integration_tests.flow": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": [], "seed.shopify_holistic_reporting_integration_tests.integration": [], "seed.shopify_holistic_reporting_integration_tests.metric": [], "seed.shopify_holistic_reporting_integration_tests.person": [], "seed.shopify_holistic_reporting_integration_tests.event": [], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": [], "seed.shopify_holistic_reporting_integration_tests.campaign": [], "model.shopify_source.stg_shopify__order_line": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"], "model.shopify_source.stg_shopify__refund": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"], "model.shopify_source.stg_shopify__product": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"], "model.shopify_source.stg_shopify__order": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"], "model.shopify_source.stg_shopify__transaction": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"], "model.shopify_source.stg_shopify__customer": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"], "model.shopify_source.stg_shopify__customer_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"], "model.shopify_source.stg_shopify__order_line_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"], "model.shopify_source.stg_shopify__refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"], "model.shopify_source.stg_shopify__product_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"], "model.shopify_source.stg_shopify__transaction_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"], "model.shopify_source.stg_shopify__product_variant_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"], "model.shopify_source.stg_shopify__order_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["seed.shopify_holistic_reporting_integration_tests.event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["seed.shopify_holistic_reporting_integration_tests.metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["seed.shopify_holistic_reporting_integration_tests.campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["seed.shopify_holistic_reporting_integration_tests.integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["seed.shopify_holistic_reporting_integration_tests.flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["seed.shopify_holistic_reporting_integration_tests.person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.klaviyo__events"], "model.klaviyo.klaviyo__persons": ["model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__flows": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo.klaviyo__campaigns": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo.klaviyo__events": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo_source.stg_klaviyo__event"], "model.shopify.shopify__customer_cohorts": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"], "model.shopify.shopify__orders": ["model.shopify.shopify__orders__order_line_aggregates", "model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify.shopify__products": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders", "model.shopify_source.stg_shopify__product"], "model.shopify.shopify__transactions": ["model.shopify_source.stg_shopify__transaction"], "model.shopify.shopify__customers": ["model.shopify.shopify__customers__order_aggregates", "model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant"], "model.shopify.shopify__calendar": [], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify_source.stg_shopify__order_line"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__transactions", "model.shopify_source.stg_shopify__order"], "model.shopify.shopify__orders__order_refunds": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.klaviyo.klaviyo__events", "model.shopify.shopify__orders", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify.shopify__order_lines", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.klaviyo.klaviyo__events"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": ["model.shopify_source.stg_shopify__customer"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": ["model.shopify_source.stg_shopify__order_line_refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": ["model.shopify_source.stg_shopify__order_line"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": ["model.shopify_source.stg_shopify__order"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": ["model.shopify_source.stg_shopify__product"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": ["model.shopify_source.stg_shopify__product_variant"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": ["model.shopify_source.stg_shopify__transaction"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": ["model.shopify_source.stg_shopify__refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": ["model.shopify_source.stg_shopify__order_adjustment"], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": ["model.klaviyo.klaviyo__events"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": ["model.klaviyo.klaviyo__events"], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": ["model.klaviyo.int_klaviyo__person_metrics"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": ["model.klaviyo.int_klaviyo__person_metrics"], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": ["model.shopify.shopify__customer_cohorts"], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": ["model.shopify.shopify__customer_cohorts"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": ["model.shopify.shopify__orders"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": ["model.shopify.shopify__customers"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": ["model.shopify.shopify__products"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": ["model.shopify.shopify__order_lines"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": ["model.shopify.shopify__transactions"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": ["model.shopify.shopify__customers__order_aggregates"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": ["model.shopify.shopify__orders__order_line_aggregates"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}, "child_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": ["model.shopify_source.stg_shopify__order_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": ["model.shopify_source.stg_shopify__order_line_refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": ["model.shopify_source.stg_shopify__order_adjustment_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": ["model.shopify_source.stg_shopify__product_variant_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": ["model.shopify_source.stg_shopify__refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": ["model.shopify_source.stg_shopify__transaction_tmp"], "seed.shopify_holistic_reporting_integration_tests.flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": ["model.shopify_source.stg_shopify__product_tmp"], "seed.shopify_holistic_reporting_integration_tests.integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp"], "seed.shopify_holistic_reporting_integration_tests.metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp"], "seed.shopify_holistic_reporting_integration_tests.person": ["model.klaviyo_source.stg_klaviyo__person_tmp"], "seed.shopify_holistic_reporting_integration_tests.event": ["model.klaviyo_source.stg_klaviyo__event_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": ["model.shopify_source.stg_shopify__customer_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": ["model.shopify_source.stg_shopify__order_line_tmp"], "seed.shopify_holistic_reporting_integration_tests.campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.shopify_source.stg_shopify__order_line": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders__order_line_aggregates", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"], "model.shopify_source.stg_shopify__refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"], "model.shopify_source.stg_shopify__product": ["model.shopify.shopify__products", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify.shopify__order_lines", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"], "model.shopify_source.stg_shopify__order": ["model.shopify.shopify__customers__order_aggregates", "model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"], "model.shopify_source.stg_shopify__transaction": ["model.shopify.shopify__transactions", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"], "model.shopify_source.stg_shopify__customer": ["model.shopify.shopify__customers", "model.shopify.shopify__customers", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"], "model.shopify_source.stg_shopify__customer_tmp": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify_source.stg_shopify__order_line_tmp": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__order_line"], "model.shopify_source.stg_shopify__refund_tmp": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_source.stg_shopify__product_tmp": ["model.shopify_source.stg_shopify__product", "model.shopify_source.stg_shopify__product"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["model.shopify_source.stg_shopify__order_adjustment", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__order_line_refund"], "model.shopify_source.stg_shopify__transaction_tmp": ["model.shopify_source.stg_shopify__transaction", "model.shopify_source.stg_shopify__transaction"], "model.shopify_source.stg_shopify__product_variant_tmp": ["model.shopify_source.stg_shopify__product_variant", "model.shopify_source.stg_shopify__product_variant"], "model.shopify_source.stg_shopify__order_tmp": ["model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__persons", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__flows", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo.int_klaviyo__event_attribution", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["model.klaviyo_source.stg_klaviyo__event", "model.klaviyo_source.stg_klaviyo__event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"], "model.klaviyo.klaviyo__persons": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"], "model.klaviyo.klaviyo__flows": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"], "model.klaviyo.klaviyo__campaigns": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"], "model.klaviyo.klaviyo__events": ["model.klaviyo.klaviyo__person_campaign_flow", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__flows", "model.klaviyo.klaviyo__flows", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__events", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"], "model.shopify.shopify__customer_cohorts": ["test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"], "model.shopify.shopify__orders": ["model.shopify.shopify__customer_cohorts", "model.shopify.shopify__products", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"], "model.shopify.shopify__products": ["test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"], "model.shopify.shopify__transactions": ["model.shopify.shopify__customers__order_aggregates", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"], "model.shopify.shopify__customers": ["model.shopify.shopify__customer_cohorts", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__products", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"], "model.shopify.shopify__calendar": ["model.shopify.shopify__customer_cohorts"], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify.shopify__orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__customers", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"], "model.shopify.shopify__orders__order_refunds": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": [], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": [], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": [], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": [], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": [], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": [], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": [], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": [], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": [], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": [], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": [], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": [], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": [], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": [], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": [], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": [], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": [], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": [], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": [], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": [], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}} \ No newline at end of file diff --git a/docs/run_results.json b/docs/run_results.json index 3b77f4e..ac502f5 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.2.0", "generated_at": "2022-10-13T23:21:06.476290Z", "invocation_id": "09cf5607-4d3b-4819-bd09-baa959605110", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.546557Z", "completed_at": "2022-10-13T23:21:02.553855Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.561574Z", "completed_at": "2022-10-13T23:21:02.561615Z"}], "thread_id": "Thread-2", "execution_time": 0.025658845901489258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.554343Z", "completed_at": "2022-10-13T23:21:02.570831Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.573692Z", "completed_at": "2022-10-13T23:21:02.573699Z"}], "thread_id": "Thread-3", "execution_time": 0.05346322059631348, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.554637Z", "completed_at": "2022-10-13T23:21:02.571768Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.600218Z", "completed_at": "2022-10-13T23:21:02.600225Z"}], "thread_id": "Thread-4", "execution_time": 0.04782891273498535, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.601160Z", "completed_at": "2022-10-13T23:21:02.604431Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.606044Z", "completed_at": "2022-10-13T23:21:02.606049Z"}], "thread_id": "Thread-2", "execution_time": 0.01548910140991211, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.604581Z", "completed_at": "2022-10-13T23:21:02.607278Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.607960Z", "completed_at": "2022-10-13T23:21:02.607964Z"}], "thread_id": "Thread-3", "execution_time": 0.006031036376953125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.604726Z", "completed_at": "2022-10-13T23:21:02.607559Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.608188Z", "completed_at": "2022-10-13T23:21:02.608191Z"}], "thread_id": "Thread-4", "execution_time": 0.004410982131958008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.608820Z", "completed_at": "2022-10-13T23:21:02.611361Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.612819Z", "completed_at": "2022-10-13T23:21:02.612822Z"}], "thread_id": "Thread-2", "execution_time": 0.006026029586791992, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.611493Z", "completed_at": "2022-10-13T23:21:02.613918Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.614480Z", "completed_at": "2022-10-13T23:21:02.614484Z"}], "thread_id": "Thread-3", "execution_time": 0.005810976028442383, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.611623Z", "completed_at": "2022-10-13T23:21:02.614162Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.614706Z", "completed_at": "2022-10-13T23:21:02.614709Z"}], "thread_id": "Thread-4", "execution_time": 0.004057168960571289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.615513Z", "completed_at": "2022-10-13T23:21:02.617294Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.618637Z", "completed_at": "2022-10-13T23:21:02.618640Z"}], "thread_id": "Thread-2", "execution_time": 0.005438089370727539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.617412Z", "completed_at": "2022-10-13T23:21:02.619762Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.620433Z", "completed_at": "2022-10-13T23:21:02.620437Z"}], "thread_id": "Thread-3", "execution_time": 0.005010843276977539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.617529Z", "completed_at": "2022-10-13T23:21:02.620123Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.620648Z", "completed_at": "2022-10-13T23:21:02.620651Z"}], "thread_id": "Thread-4", "execution_time": 0.003927946090698242, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.621208Z", "completed_at": "2022-10-13T23:21:02.623546Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.624798Z", "completed_at": "2022-10-13T23:21:02.624802Z"}], "thread_id": "Thread-2", "execution_time": 0.005545854568481445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.623661Z", "completed_at": "2022-10-13T23:21:02.625923Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.626506Z", "completed_at": "2022-10-13T23:21:02.626509Z"}], "thread_id": "Thread-3", "execution_time": 0.004576921463012695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.623776Z", "completed_at": "2022-10-13T23:21:02.626167Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.626691Z", "completed_at": "2022-10-13T23:21:02.626693Z"}], "thread_id": "Thread-4", "execution_time": 0.0036509037017822266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.627179Z", "completed_at": "2022-10-13T23:21:02.642461Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.642604Z", "completed_at": "2022-10-13T23:21:02.642609Z"}], "thread_id": "Thread-2", "execution_time": 0.016168832778930664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.636155Z", "completed_at": "2022-10-13T23:21:02.645385Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.645536Z", "completed_at": "2022-10-13T23:21:02.645539Z"}], "thread_id": "Thread-3", "execution_time": 0.018300771713256836, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.636253Z", "completed_at": "2022-10-13T23:21:02.648292Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.648805Z", "completed_at": "2022-10-13T23:21:02.648808Z"}], "thread_id": "Thread-4", "execution_time": 0.016429901123046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.643103Z", "completed_at": "2022-10-13T23:21:02.648537Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.648871Z", "completed_at": "2022-10-13T23:21:02.648874Z"}], "thread_id": "Thread-2", "execution_time": 0.0063250064849853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.646050Z", "completed_at": "2022-10-13T23:21:02.648742Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.649351Z", "completed_at": "2022-10-13T23:21:02.649354Z"}], "thread_id": "Thread-3", "execution_time": 0.003906965255737305, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.650474Z", "completed_at": "2022-10-13T23:21:02.658372Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.658605Z", "completed_at": "2022-10-13T23:21:02.658609Z"}], "thread_id": "Thread-4", "execution_time": 0.008996248245239258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.650531Z", "completed_at": "2022-10-13T23:21:02.658512Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.659032Z", "completed_at": "2022-10-13T23:21:02.659035Z"}], "thread_id": "Thread-2", "execution_time": 0.009405851364135742, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.654944Z", "completed_at": "2022-10-13T23:21:02.658661Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.659253Z", "completed_at": "2022-10-13T23:21:02.659255Z"}], "thread_id": "Thread-3", "execution_time": 0.009308099746704102, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.660218Z", "completed_at": "2022-10-13T23:21:02.667724Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.668017Z", "completed_at": "2022-10-13T23:21:02.668022Z"}], "thread_id": "Thread-4", "execution_time": 0.00873708724975586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.662929Z", "completed_at": "2022-10-13T23:21:02.668070Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.668676Z", "completed_at": "2022-10-13T23:21:02.668679Z"}], "thread_id": "Thread-2", "execution_time": 0.008950948715209961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.663056Z", "completed_at": "2022-10-13T23:21:02.668324Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.668870Z", "completed_at": "2022-10-13T23:21:02.668872Z"}], "thread_id": "Thread-3", "execution_time": 0.008917808532714844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.669416Z", "completed_at": "2022-10-13T23:21:02.672347Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.677775Z", "completed_at": "2022-10-13T23:21:02.677780Z"}], "thread_id": "Thread-4", "execution_time": 0.009246110916137695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.672287Z", "completed_at": "2022-10-13T23:21:02.678080Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.678638Z", "completed_at": "2022-10-13T23:21:02.678641Z"}], "thread_id": "Thread-2", "execution_time": 0.00933694839477539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.672420Z", "completed_at": "2022-10-13T23:21:02.678286Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.678808Z", "completed_at": "2022-10-13T23:21:02.678810Z"}], "thread_id": "Thread-3", "execution_time": 0.007205963134765625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.679042Z", "completed_at": "2022-10-13T23:21:02.682582Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:02.688233Z", "completed_at": "2022-10-13T23:21:02.688239Z"}], "thread_id": "Thread-4", "execution_time": 0.010368108749389648, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.689850Z", "completed_at": "2022-10-13T23:21:03.054069Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.054373Z", "completed_at": "2022-10-13T23:21:03.054381Z"}], "thread_id": "Thread-4", "execution_time": 0.3652050495147705, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.682525Z", "completed_at": "2022-10-13T23:21:03.066178Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.069374Z", "completed_at": "2022-10-13T23:21:03.069380Z"}], "thread_id": "Thread-2", "execution_time": 0.39832115173339844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.682656Z", "completed_at": "2022-10-13T23:21:03.084040Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.084488Z", "completed_at": "2022-10-13T23:21:03.084495Z"}], "thread_id": "Thread-3", "execution_time": 0.40245485305786133, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.055764Z", "completed_at": "2022-10-13T23:21:03.360017Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.380422Z", "completed_at": "2022-10-13T23:21:03.380433Z"}], "thread_id": "Thread-4", "execution_time": 0.32559990882873535, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.081169Z", "completed_at": "2022-10-13T23:21:03.433746Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.434199Z", "completed_at": "2022-10-13T23:21:03.434206Z"}], "thread_id": "Thread-2", "execution_time": 0.35346078872680664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.085079Z", "completed_at": "2022-10-13T23:21:03.446092Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.446231Z", "completed_at": "2022-10-13T23:21:03.446235Z"}], "thread_id": "Thread-3", "execution_time": 0.36147522926330566, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.434820Z", "completed_at": "2022-10-13T23:21:03.775103Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.775514Z", "completed_at": "2022-10-13T23:21:03.775522Z"}], "thread_id": "Thread-2", "execution_time": 0.34110498428344727, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.382890Z", "completed_at": "2022-10-13T23:21:03.790467Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.791351Z", "completed_at": "2022-10-13T23:21:03.791357Z"}], "thread_id": "Thread-4", "execution_time": 0.41014575958251953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.446755Z", "completed_at": "2022-10-13T23:21:03.797865Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.798257Z", "completed_at": "2022-10-13T23:21:03.798262Z"}], "thread_id": "Thread-3", "execution_time": 0.3518247604370117, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:02.554179Z", "completed_at": "2022-10-13T23:21:03.827506Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:03.827665Z", "completed_at": "2022-10-13T23:21:03.827671Z"}], "thread_id": "Thread-1", "execution_time": 1.2828378677368164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__calendar"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.776758Z", "completed_at": "2022-10-13T23:21:04.113412Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.113898Z", "completed_at": "2022-10-13T23:21:04.113909Z"}], "thread_id": "Thread-2", "execution_time": 0.33807802200317383, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.799031Z", "completed_at": "2022-10-13T23:21:04.113547Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.114006Z", "completed_at": "2022-10-13T23:21:04.114011Z"}], "thread_id": "Thread-3", "execution_time": 0.31585216522216797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.793412Z", "completed_at": "2022-10-13T23:21:04.136865Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.137050Z", "completed_at": "2022-10-13T23:21:04.137056Z"}], "thread_id": "Thread-4", "execution_time": 0.34464097023010254, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.137908Z", "completed_at": "2022-10-13T23:21:04.146896Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.147072Z", "completed_at": "2022-10-13T23:21:04.147076Z"}], "thread_id": "Thread-4", "execution_time": 0.009584903717041016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.147720Z", "completed_at": "2022-10-13T23:21:04.153199Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.153347Z", "completed_at": "2022-10-13T23:21:04.153352Z"}], "thread_id": "Thread-4", "execution_time": 0.006040096282958984, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.153980Z", "completed_at": "2022-10-13T23:21:04.157170Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.157311Z", "completed_at": "2022-10-13T23:21:04.157315Z"}], "thread_id": "Thread-4", "execution_time": 0.0036821365356445312, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:03.828277Z", "completed_at": "2022-10-13T23:21:04.175429Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.175585Z", "completed_at": "2022-10-13T23:21:04.175591Z"}], "thread_id": "Thread-1", "execution_time": 0.34765625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.157933Z", "completed_at": "2022-10-13T23:21:04.181855Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.185589Z", "completed_at": "2022-10-13T23:21:04.185594Z"}], "thread_id": "Thread-4", "execution_time": 0.028022050857543945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.176198Z", "completed_at": "2022-10-13T23:21:04.189250Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.189468Z", "completed_at": "2022-10-13T23:21:04.189472Z"}], "thread_id": "Thread-1", "execution_time": 0.013677120208740234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__event_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.186178Z", "completed_at": "2022-10-13T23:21:04.189394Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.189881Z", "completed_at": "2022-10-13T23:21:04.189885Z"}], "thread_id": "Thread-4", "execution_time": 0.00427699089050293, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.190888Z", "completed_at": "2022-10-13T23:21:04.196855Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.197124Z", "completed_at": "2022-10-13T23:21:04.197128Z"}], "thread_id": "Thread-1", "execution_time": 0.0069179534912109375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.193388Z", "completed_at": "2022-10-13T23:21:04.196914Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.197186Z", "completed_at": "2022-10-13T23:21:04.197189Z"}], "thread_id": "Thread-4", "execution_time": 0.00673985481262207, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.198249Z", "completed_at": "2022-10-13T23:21:04.203070Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.203314Z", "completed_at": "2022-10-13T23:21:04.203318Z"}], "thread_id": "Thread-1", "execution_time": 0.005667209625244141, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.198327Z", "completed_at": "2022-10-13T23:21:04.203124Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.203376Z", "completed_at": "2022-10-13T23:21:04.203378Z"}], "thread_id": "Thread-4", "execution_time": 0.005700826644897461, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.204350Z", "completed_at": "2022-10-13T23:21:04.209288Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.209541Z", "completed_at": "2022-10-13T23:21:04.209545Z"}], "thread_id": "Thread-1", "execution_time": 0.005740165710449219, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.204406Z", "completed_at": "2022-10-13T23:21:04.209346Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.209601Z", "completed_at": "2022-10-13T23:21:04.209604Z"}], "thread_id": "Thread-4", "execution_time": 0.005780935287475586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.210571Z", "completed_at": "2022-10-13T23:21:04.215614Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.215870Z", "completed_at": "2022-10-13T23:21:04.215873Z"}], "thread_id": "Thread-1", "execution_time": 0.005851030349731445, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.210635Z", "completed_at": "2022-10-13T23:21:04.215672Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.215932Z", "completed_at": "2022-10-13T23:21:04.215934Z"}], "thread_id": "Thread-4", "execution_time": 0.005895137786865234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.216918Z", "completed_at": "2022-10-13T23:21:04.223102Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.223346Z", "completed_at": "2022-10-13T23:21:04.223350Z"}], "thread_id": "Thread-1", "execution_time": 0.006990909576416016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.216974Z", "completed_at": "2022-10-13T23:21:04.223155Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.223406Z", "completed_at": "2022-10-13T23:21:04.223409Z"}], "thread_id": "Thread-4", "execution_time": 0.007028102874755859, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.224391Z", "completed_at": "2022-10-13T23:21:04.230148Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.230327Z", "completed_at": "2022-10-13T23:21:04.230330Z"}], "thread_id": "Thread-1", "execution_time": 0.006489992141723633, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.224447Z", "completed_at": "2022-10-13T23:21:04.230263Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.230611Z", "completed_at": "2022-10-13T23:21:04.230615Z"}], "thread_id": "Thread-4", "execution_time": 0.006699085235595703, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.233243Z", "completed_at": "2022-10-13T23:21:04.236038Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.236450Z", "completed_at": "2022-10-13T23:21:04.236453Z"}], "thread_id": "Thread-4", "execution_time": 0.005401134490966797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.236725Z", "completed_at": "2022-10-13T23:21:04.242114Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.242315Z", "completed_at": "2022-10-13T23:21:04.242318Z"}], "thread_id": "Thread-1", "execution_time": 0.0061800479888916016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.239583Z", "completed_at": "2022-10-13T23:21:04.242365Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.242802Z", "completed_at": "2022-10-13T23:21:04.242806Z"}], "thread_id": "Thread-4", "execution_time": 0.0037310123443603516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.243356Z", "completed_at": "2022-10-13T23:21:04.252949Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.261121Z", "completed_at": "2022-10-13T23:21:04.261127Z"}], "thread_id": "Thread-1", "execution_time": 0.018398046493530273, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.261640Z", "completed_at": "2022-10-13T23:21:04.264740Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.264873Z", "completed_at": "2022-10-13T23:21:04.264876Z"}], "thread_id": "Thread-1", "execution_time": 0.003531932830810547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.265353Z", "completed_at": "2022-10-13T23:21:04.267595Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.267728Z", "completed_at": "2022-10-13T23:21:04.267731Z"}], "thread_id": "Thread-1", "execution_time": 0.0026769638061523438, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.268193Z", "completed_at": "2022-10-13T23:21:04.276192Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.276326Z", "completed_at": "2022-10-13T23:21:04.276329Z"}], "thread_id": "Thread-1", "execution_time": 0.008439064025878906, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.116093Z", "completed_at": "2022-10-13T23:21:04.404924Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.405114Z", "completed_at": "2022-10-13T23:21:04.405121Z"}], "thread_id": "Thread-2", "execution_time": 0.289996862411499, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.406469Z", "completed_at": "2022-10-13T23:21:04.414577Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.415000Z", "completed_at": "2022-10-13T23:21:04.415004Z"}], "thread_id": "Thread-2", "execution_time": 0.009125232696533203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.415879Z", "completed_at": "2022-10-13T23:21:04.458690Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.459050Z", "completed_at": "2022-10-13T23:21:04.459058Z"}], "thread_id": "Thread-1", "execution_time": 0.043856143951416016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__order_lines"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.415941Z", "completed_at": "2022-10-13T23:21:04.458775Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.459116Z", "completed_at": "2022-10-13T23:21:04.459119Z"}], "thread_id": "Thread-2", "execution_time": 0.043959856033325195, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.460186Z", "completed_at": "2022-10-13T23:21:04.463605Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.466579Z", "completed_at": "2022-10-13T23:21:04.466583Z"}], "thread_id": "Thread-2", "execution_time": 0.006758213043212891, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.463670Z", "completed_at": "2022-10-13T23:21:04.466991Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.467304Z", "completed_at": "2022-10-13T23:21:04.467306Z"}], "thread_id": "Thread-1", "execution_time": 0.004099845886230469, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__products"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.467363Z", "completed_at": "2022-10-13T23:21:04.473777Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.473925Z", "completed_at": "2022-10-13T23:21:04.473928Z"}], "thread_id": "Thread-2", "execution_time": 0.007010936737060547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.471282Z", "completed_at": "2022-10-13T23:21:04.474151Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.474325Z", "completed_at": "2022-10-13T23:21:04.474327Z"}], "thread_id": "Thread-1", "execution_time": 0.003373861312866211, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.116195Z", "completed_at": "2022-10-13T23:21:04.494862Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.495001Z", "completed_at": "2022-10-13T23:21:04.495007Z"}], "thread_id": "Thread-3", "execution_time": 0.37947988510131836, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.495683Z", "completed_at": "2022-10-13T23:21:04.499324Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.502495Z", "completed_at": "2022-10-13T23:21:04.502499Z"}], "thread_id": "Thread-2", "execution_time": 0.0071637630462646484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__transactions"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.499391Z", "completed_at": "2022-10-13T23:21:04.503011Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.503516Z", "completed_at": "2022-10-13T23:21:04.503519Z"}], "thread_id": "Thread-1", "execution_time": 0.0046269893646240234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.503848Z", "completed_at": "2022-10-13T23:21:04.508557Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.509049Z", "completed_at": "2022-10-13T23:21:04.509052Z"}], "thread_id": "Thread-2", "execution_time": 0.006025075912475586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.509814Z", "completed_at": "2022-10-13T23:21:04.517062Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.517351Z", "completed_at": "2022-10-13T23:21:04.517356Z"}], "thread_id": "Thread-3", "execution_time": 0.008033990859985352, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.246737Z", "completed_at": "2022-10-13T23:21:04.546039Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.546173Z", "completed_at": "2022-10-13T23:21:04.546178Z"}], "thread_id": "Thread-4", "execution_time": 0.3028879165649414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__events"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.553600Z", "completed_at": "2022-10-13T23:21:04.571186Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.571332Z", "completed_at": "2022-10-13T23:21:04.571337Z"}], "thread_id": "Thread-3", "execution_time": 0.01902318000793457, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.546880Z", "completed_at": "2022-10-13T23:21:04.571786Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.572077Z", "completed_at": "2022-10-13T23:21:04.572080Z"}], "thread_id": "Thread-2", "execution_time": 0.028123140335083008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__person_campaign_flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.572020Z", "completed_at": "2022-10-13T23:21:04.575307Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.575560Z", "completed_at": "2022-10-13T23:21:04.575563Z"}], "thread_id": "Thread-3", "execution_time": 0.0060651302337646484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.575500Z", "completed_at": "2022-10-13T23:21:04.578130Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.578394Z", "completed_at": "2022-10-13T23:21:04.578397Z"}], "thread_id": "Thread-2", "execution_time": 0.006337165832519531, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.553746Z", "completed_at": "2022-10-13T23:21:04.892816Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.893188Z", "completed_at": "2022-10-13T23:21:04.893195Z"}], "thread_id": "Thread-4", "execution_time": 0.34067416191101074, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.509750Z", "completed_at": "2022-10-13T23:21:04.920377Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.920527Z", "completed_at": "2022-10-13T23:21:04.920532Z"}], "thread_id": "Thread-1", "execution_time": 0.41150474548339844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customers"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.900731Z", "completed_at": "2022-10-13T23:21:04.923246Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.923391Z", "completed_at": "2022-10-13T23:21:04.923395Z"}], "thread_id": "Thread-4", "execution_time": 0.023033857345581055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.578335Z", "completed_at": "2022-10-13T23:21:04.927047Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.927307Z", "completed_at": "2022-10-13T23:21:04.927311Z"}], "thread_id": "Thread-3", "execution_time": 0.34955811500549316, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.921077Z", "completed_at": "2022-10-13T23:21:04.927244Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.927691Z", "completed_at": "2022-10-13T23:21:04.927694Z"}], "thread_id": "Thread-1", "execution_time": 0.00714111328125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.923976Z", "completed_at": "2022-10-13T23:21:04.927432Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.928148Z", "completed_at": "2022-10-13T23:21:04.928151Z"}], "thread_id": "Thread-4", "execution_time": 0.00481414794921875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.928914Z", "completed_at": "2022-10-13T23:21:04.943117Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.943957Z", "completed_at": "2022-10-13T23:21:04.943963Z"}], "thread_id": "Thread-3", "execution_time": 0.016031980514526367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.931666Z", "completed_at": "2022-10-13T23:21:04.943473Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.944512Z", "completed_at": "2022-10-13T23:21:04.944515Z"}], "thread_id": "Thread-1", "execution_time": 0.01619410514831543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customer_cohorts"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.945529Z", "completed_at": "2022-10-13T23:21:04.952140Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:04.952518Z", "completed_at": "2022-10-13T23:21:04.952523Z"}], "thread_id": "Thread-3", "execution_time": 0.00764012336730957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.582939Z", "completed_at": "2022-10-13T23:21:05.055668Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.055842Z", "completed_at": "2022-10-13T23:21:05.055849Z"}], "thread_id": "Thread-2", "execution_time": 0.47332096099853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__person_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.056766Z", "completed_at": "2022-10-13T23:21:05.060931Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.061082Z", "completed_at": "2022-10-13T23:21:05.061086Z"}], "thread_id": "Thread-2", "execution_time": 0.004834175109863281, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.948417Z", "completed_at": "2022-10-13T23:21:05.251268Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.252296Z", "completed_at": "2022-10-13T23:21:05.252315Z"}], "thread_id": "Thread-1", "execution_time": 0.30742573738098145, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__campaigns"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.936713Z", "completed_at": "2022-10-13T23:21:05.253454Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.254558Z", "completed_at": "2022-10-13T23:21:05.254566Z"}], "thread_id": "Thread-4", "execution_time": 0.3259618282318115, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.254686Z", "completed_at": "2022-10-13T23:21:05.265880Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.266236Z", "completed_at": "2022-10-13T23:21:05.266243Z"}], "thread_id": "Thread-1", "execution_time": 0.012721061706542969, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.261994Z", "completed_at": "2022-10-13T23:21:05.266625Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.267206Z", "completed_at": "2022-10-13T23:21:05.267211Z"}], "thread_id": "Thread-4", "execution_time": 0.005946159362792969, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.273563Z", "completed_at": "2022-10-13T23:21:05.278123Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.278320Z", "completed_at": "2022-10-13T23:21:05.278327Z"}], "thread_id": "Thread-4", "execution_time": 0.006033182144165039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.279127Z", "completed_at": "2022-10-13T23:21:05.283373Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.283538Z", "completed_at": "2022-10-13T23:21:05.283542Z"}], "thread_id": "Thread-4", "execution_time": 0.004879951477050781, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.284247Z", "completed_at": "2022-10-13T23:21:05.287769Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.287917Z", "completed_at": "2022-10-13T23:21:05.287922Z"}], "thread_id": "Thread-4", "execution_time": 0.0040781497955322266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.288514Z", "completed_at": "2022-10-13T23:21:05.291259Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.291402Z", "completed_at": "2022-10-13T23:21:05.291406Z"}], "thread_id": "Thread-4", "execution_time": 0.0032227039337158203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:04.953057Z", "completed_at": "2022-10-13T23:21:05.496118Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.496592Z", "completed_at": "2022-10-13T23:21:05.496601Z"}], "thread_id": "Thread-3", "execution_time": 0.5441100597381592, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__flows"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.061703Z", "completed_at": "2022-10-13T23:21:05.496251Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.496696Z", "completed_at": "2022-10-13T23:21:05.496700Z"}], "thread_id": "Thread-2", "execution_time": 0.4358179569244385, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.498991Z", "completed_at": "2022-10-13T23:21:05.522822Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.523379Z", "completed_at": "2022-10-13T23:21:05.523388Z"}], "thread_id": "Thread-2", "execution_time": 0.025833845138549805, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.499179Z", "completed_at": "2022-10-13T23:21:05.523181Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.523979Z", "completed_at": "2022-10-13T23:21:05.523983Z"}], "thread_id": "Thread-4", "execution_time": 0.025975942611694336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.504632Z", "completed_at": "2022-10-13T23:21:05.523254Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.524057Z", "completed_at": "2022-10-13T23:21:05.524063Z"}], "thread_id": "Thread-3", "execution_time": 0.025883913040161133, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.267680Z", "completed_at": "2022-10-13T23:21:05.523322Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.524135Z", "completed_at": "2022-10-13T23:21:05.524138Z"}], "thread_id": "Thread-1", "execution_time": 0.2577683925628662, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__persons"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.526854Z", "completed_at": "2022-10-13T23:21:05.540776Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.540953Z", "completed_at": "2022-10-13T23:21:05.540958Z"}], "thread_id": "Thread-4", "execution_time": 0.015397071838378906, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.526993Z", "completed_at": "2022-10-13T23:21:05.541017Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.541549Z", "completed_at": "2022-10-13T23:21:05.541552Z"}], "thread_id": "Thread-1", "execution_time": 0.015594005584716797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.526925Z", "completed_at": "2022-10-13T23:21:05.541067Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.541638Z", "completed_at": "2022-10-13T23:21:05.541640Z"}], "thread_id": "Thread-3", "execution_time": 0.015960216522216797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.542408Z", "completed_at": "2022-10-13T23:21:05.544920Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.545046Z", "completed_at": "2022-10-13T23:21:05.545049Z"}], "thread_id": "Thread-4", "execution_time": 0.0034668445587158203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.526780Z", "completed_at": "2022-10-13T23:21:05.853570Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:05.854111Z", "completed_at": "2022-10-13T23:21:05.854137Z"}], "thread_id": "Thread-2", "execution_time": 0.3291921615600586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:05.858799Z", "completed_at": "2022-10-13T23:21:06.463457Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:06.463819Z", "completed_at": "2022-10-13T23:21:06.463840Z"}], "thread_id": "Thread-1", "execution_time": 0.6066861152648926, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-13T23:21:06.466247Z", "completed_at": "2022-10-13T23:21:06.473850Z"}, {"name": "execute", "started_at": "2022-10-13T23:21:06.474132Z", "completed_at": "2022-10-13T23:21:06.474140Z"}], "thread_id": "Thread-4", "execution_time": 0.008740901947021484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"}], "elapsed_time": 6.257101058959961, "args": {"write_json": true, "use_colors": true, "printer_width": 80, "version_check": true, "partial_parse": true, "static_parser": true, "profiles_dir": "/Users/jamie.rodriguez/.dbt", "send_anonymous_usage_stats": true, "event_buffer_size": 100000, "quiet": false, "no_print": false, "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.3.0", "generated_at": "2022-10-28T17:32:15.977598Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056666Z", "completed_at": "2022-10-28T17:32:02.085812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086542Z", "completed_at": "2022-10-28T17:32:02.086556Z"}], "thread_id": "Thread-2", "execution_time": 0.03435492515563965, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056855Z", "completed_at": "2022-10-28T17:32:02.086034Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086769Z", "completed_at": "2022-10-28T17:32:02.086776Z"}], "thread_id": "Thread-3", "execution_time": 0.033918142318725586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.057044Z", "completed_at": "2022-10-28T17:32:02.086117Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086879Z", "completed_at": "2022-10-28T17:32:02.086883Z"}], "thread_id": "Thread-4", "execution_time": 0.033473968505859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.089915Z", "completed_at": "2022-10-28T17:32:02.093987Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094470Z", "completed_at": "2022-10-28T17:32:02.094476Z"}], "thread_id": "Thread-2", "execution_time": 0.006161928176879883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.090000Z", "completed_at": "2022-10-28T17:32:02.094080Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094550Z", "completed_at": "2022-10-28T17:32:02.094553Z"}], "thread_id": "Thread-3", "execution_time": 0.0061359405517578125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.090074Z", "completed_at": "2022-10-28T17:32:02.094156Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094626Z", "completed_at": "2022-10-28T17:32:02.094629Z"}], "thread_id": "Thread-4", "execution_time": 0.006162166595458984, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097480Z", "completed_at": "2022-10-28T17:32:02.102069Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102591Z", "completed_at": "2022-10-28T17:32:02.102596Z"}], "thread_id": "Thread-2", "execution_time": 0.006793975830078125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097559Z", "completed_at": "2022-10-28T17:32:02.102155Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102674Z", "completed_at": "2022-10-28T17:32:02.102678Z"}], "thread_id": "Thread-3", "execution_time": 0.006827831268310547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097635Z", "completed_at": "2022-10-28T17:32:02.102235Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102768Z", "completed_at": "2022-10-28T17:32:02.102772Z"}], "thread_id": "Thread-4", "execution_time": 0.006855010986328125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105546Z", "completed_at": "2022-10-28T17:32:02.109491Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.109954Z", "completed_at": "2022-10-28T17:32:02.109959Z"}], "thread_id": "Thread-2", "execution_time": 0.005962848663330078, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105625Z", "completed_at": "2022-10-28T17:32:02.109575Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.110031Z", "completed_at": "2022-10-28T17:32:02.110035Z"}], "thread_id": "Thread-3", "execution_time": 0.005985736846923828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105701Z", "completed_at": "2022-10-28T17:32:02.109651Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.110109Z", "completed_at": "2022-10-28T17:32:02.110112Z"}], "thread_id": "Thread-4", "execution_time": 0.006028652191162109, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.112926Z", "completed_at": "2022-10-28T17:32:02.118348Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.118998Z", "completed_at": "2022-10-28T17:32:02.119005Z"}], "thread_id": "Thread-2", "execution_time": 0.007712125778198242, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.113000Z", "completed_at": "2022-10-28T17:32:02.118487Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.119086Z", "completed_at": "2022-10-28T17:32:02.119090Z"}], "thread_id": "Thread-3", "execution_time": 0.0077779293060302734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.113071Z", "completed_at": "2022-10-28T17:32:02.118591Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.119173Z", "completed_at": "2022-10-28T17:32:02.119178Z"}], "thread_id": "Thread-4", "execution_time": 0.00789189338684082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122192Z", "completed_at": "2022-10-28T17:32:02.147397Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.147931Z", "completed_at": "2022-10-28T17:32:02.147940Z"}], "thread_id": "Thread-2", "execution_time": 0.02731609344482422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122347Z", "completed_at": "2022-10-28T17:32:02.147490Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.148023Z", "completed_at": "2022-10-28T17:32:02.148027Z"}], "thread_id": "Thread-4", "execution_time": 0.02715015411376953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122274Z", "completed_at": "2022-10-28T17:32:02.147566Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.148108Z", "completed_at": "2022-10-28T17:32:02.148111Z"}], "thread_id": "Thread-3", "execution_time": 0.027777910232543945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151143Z", "completed_at": "2022-10-28T17:32:02.191000Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191548Z", "completed_at": "2022-10-28T17:32:02.191556Z"}], "thread_id": "Thread-4", "execution_time": 0.04194784164428711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151222Z", "completed_at": "2022-10-28T17:32:02.191097Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191641Z", "completed_at": "2022-10-28T17:32:02.191646Z"}], "thread_id": "Thread-3", "execution_time": 0.04205679893493652, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151057Z", "completed_at": "2022-10-28T17:32:02.191169Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191781Z", "completed_at": "2022-10-28T17:32:02.191792Z"}], "thread_id": "Thread-2", "execution_time": 0.04295969009399414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194849Z", "completed_at": "2022-10-28T17:32:02.204631Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205140Z", "completed_at": "2022-10-28T17:32:02.205145Z"}], "thread_id": "Thread-3", "execution_time": 0.011619091033935547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194765Z", "completed_at": "2022-10-28T17:32:02.204709Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205223Z", "completed_at": "2022-10-28T17:32:02.205227Z"}], "thread_id": "Thread-4", "execution_time": 0.012217283248901367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194926Z", "completed_at": "2022-10-28T17:32:02.204782Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205307Z", "completed_at": "2022-10-28T17:32:02.205311Z"}], "thread_id": "Thread-2", "execution_time": 0.011977910995483398, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.208007Z", "completed_at": "2022-10-28T17:32:02.218289Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.218491Z", "completed_at": "2022-10-28T17:32:02.218497Z"}], "thread_id": "Thread-4", "execution_time": 0.011612176895141602, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.207932Z", "completed_at": "2022-10-28T17:32:02.222536Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223068Z", "completed_at": "2022-10-28T17:32:02.223073Z"}], "thread_id": "Thread-3", "execution_time": 0.01660013198852539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.208080Z", "completed_at": "2022-10-28T17:32:02.222629Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223160Z", "completed_at": "2022-10-28T17:32:02.223164Z"}], "thread_id": "Thread-2", "execution_time": 0.016391992568969727, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.219397Z", "completed_at": "2022-10-28T17:32:02.222992Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223975Z", "completed_at": "2022-10-28T17:32:02.223980Z"}], "thread_id": "Thread-4", "execution_time": 0.0056111812591552734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.226011Z", "completed_at": "2022-10-28T17:32:02.240372Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.240849Z", "completed_at": "2022-10-28T17:32:02.240855Z"}], "thread_id": "Thread-2", "execution_time": 0.01633930206298828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.225921Z", "completed_at": "2022-10-28T17:32:02.240517Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.241083Z", "completed_at": "2022-10-28T17:32:02.241088Z"}], "thread_id": "Thread-3", "execution_time": 0.0169680118560791, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056437Z", "completed_at": "2022-10-28T17:32:03.393615Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.394053Z", "completed_at": "2022-10-28T17:32:03.394076Z"}], "thread_id": "Thread-1", "execution_time": 1.5078966617584229, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__calendar"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.243054Z", "completed_at": "2022-10-28T17:32:03.614339Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.615002Z", "completed_at": "2022-10-28T17:32:03.615007Z"}], "thread_id": "Thread-3", "execution_time": 1.5109260082244873, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.242974Z", "completed_at": "2022-10-28T17:32:03.614395Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.615094Z", "completed_at": "2022-10-28T17:32:03.615098Z"}], "thread_id": "Thread-2", "execution_time": 1.5120048522949219, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.232403Z", "completed_at": "2022-10-28T17:32:03.614201Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.614792Z", "completed_at": "2022-10-28T17:32:03.614799Z"}], "thread_id": "Thread-4", "execution_time": 1.5492050647735596, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.609783Z", "completed_at": "2022-10-28T17:32:04.930210Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:04.930772Z", "completed_at": "2022-10-28T17:32:04.930811Z"}], "thread_id": "Thread-1", "execution_time": 1.4638330936431885, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.757155Z", "completed_at": "2022-10-28T17:32:05.184990Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185633Z", "completed_at": "2022-10-28T17:32:05.185638Z"}], "thread_id": "Thread-2", "execution_time": 1.5716450214385986, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.757002Z", "completed_at": "2022-10-28T17:32:05.184664Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185206Z", "completed_at": "2022-10-28T17:32:05.185215Z"}], "thread_id": "Thread-3", "execution_time": 1.5976057052612305, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.776743Z", "completed_at": "2022-10-28T17:32:05.184798Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185424Z", "completed_at": "2022-10-28T17:32:05.185428Z"}], "thread_id": "Thread-4", "execution_time": 1.5779471397399902, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.078040Z", "completed_at": "2022-10-28T17:32:06.504185Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.504551Z", "completed_at": "2022-10-28T17:32:06.504569Z"}], "thread_id": "Thread-1", "execution_time": 1.5718729496002197, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.357170Z", "completed_at": "2022-10-28T17:32:06.805413Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.805619Z", "completed_at": "2022-10-28T17:32:06.805626Z"}], "thread_id": "Thread-4", "execution_time": 1.60520601272583, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.331780Z", "completed_at": "2022-10-28T17:32:06.805974Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.806310Z", "completed_at": "2022-10-28T17:32:06.806313Z"}], "thread_id": "Thread-2", "execution_time": 1.6324999332427979, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.357005Z", "completed_at": "2022-10-28T17:32:06.806082Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.806385Z", "completed_at": "2022-10-28T17:32:06.806389Z"}], "thread_id": "Thread-3", "execution_time": 1.607996940612793, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.652794Z", "completed_at": "2022-10-28T17:32:07.956757Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:07.957316Z", "completed_at": "2022-10-28T17:32:07.957340Z"}], "thread_id": "Thread-1", "execution_time": 1.4652929306030273, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.119142Z", "completed_at": "2022-10-28T17:32:08.155707Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.156070Z", "completed_at": "2022-10-28T17:32:08.156086Z"}], "thread_id": "Thread-1", "execution_time": 0.038806915283203125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__event_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.158174Z", "completed_at": "2022-10-28T17:32:08.175239Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.175507Z", "completed_at": "2022-10-28T17:32:08.175515Z"}], "thread_id": "Thread-1", "execution_time": 0.018657922744750977, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.177431Z", "completed_at": "2022-10-28T17:32:08.187210Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.187489Z", "completed_at": "2022-10-28T17:32:08.187496Z"}], "thread_id": "Thread-1", "execution_time": 0.01214909553527832, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.189393Z", "completed_at": "2022-10-28T17:32:08.194322Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.194550Z", "completed_at": "2022-10-28T17:32:08.194556Z"}], "thread_id": "Thread-1", "execution_time": 0.0059702396392822266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.195667Z", "completed_at": "2022-10-28T17:32:08.199485Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.199681Z", "completed_at": "2022-10-28T17:32:08.199686Z"}], "thread_id": "Thread-1", "execution_time": 0.004740238189697266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.200690Z", "completed_at": "2022-10-28T17:32:08.205131Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.205328Z", "completed_at": "2022-10-28T17:32:08.205334Z"}], "thread_id": "Thread-1", "execution_time": 0.005331993103027344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.206345Z", "completed_at": "2022-10-28T17:32:08.209632Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.209811Z", "completed_at": "2022-10-28T17:32:08.209815Z"}], "thread_id": "Thread-1", "execution_time": 0.0041332244873046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.210786Z", "completed_at": "2022-10-28T17:32:08.214890Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.215074Z", "completed_at": "2022-10-28T17:32:08.215079Z"}], "thread_id": "Thread-1", "execution_time": 0.004953861236572266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.215966Z", "completed_at": "2022-10-28T17:32:08.253140Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.253340Z", "completed_at": "2022-10-28T17:32:08.253348Z"}], "thread_id": "Thread-1", "execution_time": 0.03803396224975586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.254254Z", "completed_at": "2022-10-28T17:32:08.258142Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.258311Z", "completed_at": "2022-10-28T17:32:08.258316Z"}], "thread_id": "Thread-1", "execution_time": 0.004662990570068359, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.259164Z", "completed_at": "2022-10-28T17:32:08.278454Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.304997Z", "completed_at": "2022-10-28T17:32:08.305006Z"}], "thread_id": "Thread-1", "execution_time": 0.04673290252685547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.307020Z", "completed_at": "2022-10-28T17:32:08.311075Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.311248Z", "completed_at": "2022-10-28T17:32:08.311253Z"}], "thread_id": "Thread-1", "execution_time": 0.005108833312988281, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.312165Z", "completed_at": "2022-10-28T17:32:08.315173Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.315338Z", "completed_at": "2022-10-28T17:32:08.315343Z"}], "thread_id": "Thread-1", "execution_time": 0.003793001174926758, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.316213Z", "completed_at": "2022-10-28T17:32:08.319127Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.319289Z", "completed_at": "2022-10-28T17:32:08.319293Z"}], "thread_id": "Thread-1", "execution_time": 0.003663778305053711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.320138Z", "completed_at": "2022-10-28T17:32:08.324703Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.324876Z", "completed_at": "2022-10-28T17:32:08.324880Z"}], "thread_id": "Thread-1", "execution_time": 0.005329132080078125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.325813Z", "completed_at": "2022-10-28T17:32:08.329593Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.329775Z", "completed_at": "2022-10-28T17:32:08.329780Z"}], "thread_id": "Thread-1", "execution_time": 0.0045812129974365234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.330654Z", "completed_at": "2022-10-28T17:32:08.335223Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.335392Z", "completed_at": "2022-10-28T17:32:08.335397Z"}], "thread_id": "Thread-1", "execution_time": 0.005346775054931641, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.339835Z", "completed_at": "2022-10-28T17:32:08.343547Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.343719Z", "completed_at": "2022-10-28T17:32:08.343724Z"}], "thread_id": "Thread-1", "execution_time": 0.004494190216064453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.344564Z", "completed_at": "2022-10-28T17:32:08.348282Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.348449Z", "completed_at": "2022-10-28T17:32:08.348453Z"}], "thread_id": "Thread-1", "execution_time": 0.004469156265258789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.349290Z", "completed_at": "2022-10-28T17:32:08.352945Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.353109Z", "completed_at": "2022-10-28T17:32:08.353114Z"}], "thread_id": "Thread-1", "execution_time": 0.004397869110107422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.353946Z", "completed_at": "2022-10-28T17:32:08.357813Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.357995Z", "completed_at": "2022-10-28T17:32:08.358001Z"}], "thread_id": "Thread-1", "execution_time": 0.004648923873901367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.968070Z", "completed_at": "2022-10-28T17:32:08.305086Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.306150Z", "completed_at": "2022-10-28T17:32:08.306155Z"}], "thread_id": "Thread-2", "execution_time": 1.4679338932037354, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.968245Z", "completed_at": "2022-10-28T17:32:08.305282Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.306329Z", "completed_at": "2022-10-28T17:32:08.306332Z"}], "thread_id": "Thread-3", "execution_time": 1.4678001403808594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.436011Z", "completed_at": "2022-10-28T17:32:08.444389Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.444748Z", "completed_at": "2022-10-28T17:32:08.444755Z"}], "thread_id": "Thread-2", "execution_time": 0.00994873046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.436103Z", "completed_at": "2022-10-28T17:32:08.444493Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.444834Z", "completed_at": "2022-10-28T17:32:08.444837Z"}], "thread_id": "Thread-3", "execution_time": 0.009969949722290039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.967861Z", "completed_at": "2022-10-28T17:32:08.304891Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.305816Z", "completed_at": "2022-10-28T17:32:08.305820Z"}], "thread_id": "Thread-4", "execution_time": 1.4811129570007324, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.464215Z", "completed_at": "2022-10-28T17:32:08.470444Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.470698Z", "completed_at": "2022-10-28T17:32:08.470705Z"}], "thread_id": "Thread-4", "execution_time": 0.023891925811767578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__transactions"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.447399Z", "completed_at": "2022-10-28T17:32:08.470759Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.472084Z", "completed_at": "2022-10-28T17:32:08.472089Z"}], "thread_id": "Thread-2", "execution_time": 0.026879072189331055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.473381Z", "completed_at": "2022-10-28T17:32:08.484962Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.485432Z", "completed_at": "2022-10-28T17:32:08.485439Z"}], "thread_id": "Thread-3", "execution_time": 0.013703346252441406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.473461Z", "completed_at": "2022-10-28T17:32:08.485076Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.485521Z", "completed_at": "2022-10-28T17:32:08.485525Z"}], "thread_id": "Thread-4", "execution_time": 0.013738870620727539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.481331Z", "completed_at": "2022-10-28T17:32:08.485365Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.486320Z", "completed_at": "2022-10-28T17:32:08.486324Z"}], "thread_id": "Thread-2", "execution_time": 0.013330936431884766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.488157Z", "completed_at": "2022-10-28T17:32:08.545817Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.546017Z", "completed_at": "2022-10-28T17:32:08.546024Z"}], "thread_id": "Thread-3", "execution_time": 0.05931401252746582, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__order_lines"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.488245Z", "completed_at": "2022-10-28T17:32:08.546756Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.548158Z", "completed_at": "2022-10-28T17:32:08.548163Z"}], "thread_id": "Thread-4", "execution_time": 0.06156516075134277, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.548256Z", "completed_at": "2022-10-28T17:32:08.558509Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.563389Z", "completed_at": "2022-10-28T17:32:08.563396Z"}], "thread_id": "Thread-3", "execution_time": 0.016840219497680664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.554406Z", "completed_at": "2022-10-28T17:32:08.558831Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.563984Z", "completed_at": "2022-10-28T17:32:08.563988Z"}], "thread_id": "Thread-2", "execution_time": 0.016135215759277344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.565497Z", "completed_at": "2022-10-28T17:32:08.576705Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.576914Z", "completed_at": "2022-10-28T17:32:08.576922Z"}], "thread_id": "Thread-3", "execution_time": 0.012480974197387695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.571640Z", "completed_at": "2022-10-28T17:32:08.581812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.582100Z", "completed_at": "2022-10-28T17:32:08.582105Z"}], "thread_id": "Thread-2", "execution_time": 0.017261028289794922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__products"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.577812Z", "completed_at": "2022-10-28T17:32:08.582000Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.582679Z", "completed_at": "2022-10-28T17:32:08.582683Z"}], "thread_id": "Thread-3", "execution_time": 0.00563502311706543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.583844Z", "completed_at": "2022-10-28T17:32:08.588013Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.588199Z", "completed_at": "2022-10-28T17:32:08.588205Z"}], "thread_id": "Thread-2", "execution_time": 0.004991054534912109, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.358871Z", "completed_at": "2022-10-28T17:32:09.597784Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.598402Z", "completed_at": "2022-10-28T17:32:09.598424Z"}], "thread_id": "Thread-1", "execution_time": 1.375688076019287, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__events"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.742566Z", "completed_at": "2022-10-28T17:32:09.814834Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.815330Z", "completed_at": "2022-10-28T17:32:09.815338Z"}], "thread_id": "Thread-3", "execution_time": 0.0774390697479248, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__person_campaign_flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.743112Z", "completed_at": "2022-10-28T17:32:09.815411Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.816445Z", "completed_at": "2022-10-28T17:32:09.816452Z"}], "thread_id": "Thread-2", "execution_time": 0.07715010643005371, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.817625Z", "completed_at": "2022-10-28T17:32:09.825150Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.825363Z", "completed_at": "2022-10-28T17:32:09.825369Z"}], "thread_id": "Thread-3", "execution_time": 0.009039878845214844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.822110Z", "completed_at": "2022-10-28T17:32:09.825467Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.826111Z", "completed_at": "2022-10-28T17:32:09.826115Z"}], "thread_id": "Thread-2", "execution_time": 0.008965015411376953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.558646Z", "completed_at": "2022-10-28T17:32:09.814962Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.815505Z", "completed_at": "2022-10-28T17:32:09.815509Z"}], "thread_id": "Thread-4", "execution_time": 1.3981330394744873, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customers"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.954311Z", "completed_at": "2022-10-28T17:32:09.963624Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.963900Z", "completed_at": "2022-10-28T17:32:09.963908Z"}], "thread_id": "Thread-4", "execution_time": 0.010902881622314453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.965332Z", "completed_at": "2022-10-28T17:32:09.970110Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.970370Z", "completed_at": "2022-10-28T17:32:09.970378Z"}], "thread_id": "Thread-4", "execution_time": 0.0060231685638427734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.971633Z", "completed_at": "2022-10-28T17:32:09.979764Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.979978Z", "completed_at": "2022-10-28T17:32:09.979984Z"}], "thread_id": "Thread-4", "execution_time": 0.009145975112915039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customer_cohorts"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.827028Z", "completed_at": "2022-10-28T17:32:11.076574Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.078427Z", "completed_at": "2022-10-28T17:32:11.078452Z"}], "thread_id": "Thread-3", "execution_time": 1.376533031463623, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.775226Z", "completed_at": "2022-10-28T17:32:11.078174Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.079202Z", "completed_at": "2022-10-28T17:32:11.079213Z"}], "thread_id": "Thread-1", "execution_time": 1.4970192909240723, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.832867Z", "completed_at": "2022-10-28T17:32:11.092249Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.092691Z", "completed_at": "2022-10-28T17:32:11.092703Z"}], "thread_id": "Thread-2", "execution_time": 1.413248062133789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__person_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.207705Z", "completed_at": "2022-10-28T17:32:11.242732Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.244910Z", "completed_at": "2022-10-28T17:32:11.244918Z"}], "thread_id": "Thread-3", "execution_time": 0.04848217964172363, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.244533Z", "completed_at": "2022-10-28T17:32:11.260637Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.261443Z", "completed_at": "2022-10-28T17:32:11.261455Z"}], "thread_id": "Thread-1", "execution_time": 0.03114914894104004, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.245089Z", "completed_at": "2022-10-28T17:32:11.261129Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.273311Z", "completed_at": "2022-10-28T17:32:11.273317Z"}], "thread_id": "Thread-2", "execution_time": 0.03102898597717285, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.281430Z", "completed_at": "2022-10-28T17:32:11.289414Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.289610Z", "completed_at": "2022-10-28T17:32:11.289617Z"}], "thread_id": "Thread-2", "execution_time": 0.014653205871582031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.290693Z", "completed_at": "2022-10-28T17:32:11.295671Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.295867Z", "completed_at": "2022-10-28T17:32:11.295873Z"}], "thread_id": "Thread-2", "execution_time": 0.005940914154052734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.296904Z", "completed_at": "2022-10-28T17:32:11.301727Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.301916Z", "completed_at": "2022-10-28T17:32:11.301921Z"}], "thread_id": "Thread-2", "execution_time": 0.005641937255859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.981184Z", "completed_at": "2022-10-28T17:32:11.242579Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.244715Z", "completed_at": "2022-10-28T17:32:11.244727Z"}], "thread_id": "Thread-4", "execution_time": 1.4133787155151367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.395048Z", "completed_at": "2022-10-28T17:32:11.400582Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.400802Z", "completed_at": "2022-10-28T17:32:11.400809Z"}], "thread_id": "Thread-4", "execution_time": 0.00657200813293457, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.401936Z", "completed_at": "2022-10-28T17:32:11.405535Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.405725Z", "completed_at": "2022-10-28T17:32:11.405731Z"}], "thread_id": "Thread-4", "execution_time": 0.0045397281646728516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.261282Z", "completed_at": "2022-10-28T17:32:12.540410Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.541536Z", "completed_at": "2022-10-28T17:32:12.541585Z"}], "thread_id": "Thread-3", "execution_time": 1.4272058010101318, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__campaigns"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.275641Z", "completed_at": "2022-10-28T17:32:12.570155Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.570694Z", "completed_at": "2022-10-28T17:32:12.570711Z"}], "thread_id": "Thread-1", "execution_time": 1.4356250762939453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__flows"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.692119Z", "completed_at": "2022-10-28T17:32:12.709162Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.711011Z", "completed_at": "2022-10-28T17:32:12.711018Z"}], "thread_id": "Thread-3", "execution_time": 0.02184605598449707, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.302793Z", "completed_at": "2022-10-28T17:32:12.579307Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.579794Z", "completed_at": "2022-10-28T17:32:12.579806Z"}], "thread_id": "Thread-2", "execution_time": 1.4210739135742188, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__persons"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.712444Z", "completed_at": "2022-10-28T17:32:12.723841Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.725077Z", "completed_at": "2022-10-28T17:32:12.725084Z"}], "thread_id": "Thread-1", "execution_time": 0.014543771743774414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.717770Z", "completed_at": "2022-10-28T17:32:12.724855Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.726029Z", "completed_at": "2022-10-28T17:32:12.726037Z"}], "thread_id": "Thread-3", "execution_time": 0.019464969635009766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.725906Z", "completed_at": "2022-10-28T17:32:12.733420Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.744618Z", "completed_at": "2022-10-28T17:32:12.744629Z"}], "thread_id": "Thread-2", "execution_time": 0.026561975479125977, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.744466Z", "completed_at": "2022-10-28T17:32:12.752146Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.752579Z", "completed_at": "2022-10-28T17:32:12.752585Z"}], "thread_id": "Thread-3", "execution_time": 0.024013042449951172, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.752474Z", "completed_at": "2022-10-28T17:32:12.758118Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.762069Z", "completed_at": "2022-10-28T17:32:12.762079Z"}], "thread_id": "Thread-2", "execution_time": 0.010725259780883789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.758015Z", "completed_at": "2022-10-28T17:32:12.762812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.763490Z", "completed_at": "2022-10-28T17:32:12.763496Z"}], "thread_id": "Thread-3", "execution_time": 0.006368160247802734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.763593Z", "completed_at": "2022-10-28T17:32:12.768858Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.769043Z", "completed_at": "2022-10-28T17:32:12.769049Z"}], "thread_id": "Thread-2", "execution_time": 0.006434917449951172, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.406720Z", "completed_at": "2022-10-28T17:32:12.802623Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.802872Z", "completed_at": "2022-10-28T17:32:12.802879Z"}], "thread_id": "Thread-4", "execution_time": 1.5726749897003174, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.985913Z", "completed_at": "2022-10-28T17:32:13.011349Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:13.011869Z", "completed_at": "2022-10-28T17:32:13.011889Z"}], "thread_id": "Thread-3", "execution_time": 0.02877330780029297, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.733534Z", "completed_at": "2022-10-28T17:32:14.206528Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:14.207650Z", "completed_at": "2022-10-28T17:32:14.207693Z"}], "thread_id": "Thread-1", "execution_time": 1.623218059539795, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:14.361845Z", "completed_at": "2022-10-28T17:32:15.801279Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:15.802399Z", "completed_at": "2022-10-28T17:32:15.802449Z"}], "thread_id": "Thread-4", "execution_time": 1.5933539867401123, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:15.958866Z", "completed_at": "2022-10-28T17:32:15.975849Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:15.976059Z", "completed_at": "2022-10-28T17:32:15.976066Z"}], "thread_id": "Thread-3", "execution_time": 0.019481182098388672, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"}], "elapsed_time": 19.156047105789185, "args": {"write_json": true, "use_colors": true, "printer_width": 80, "version_check": true, "partial_parse": true, "static_parser": true, "profiles_dir": "/Users/avinash.kunnath/.dbt", "send_anonymous_usage_stats": true, "event_buffer_size": 100000, "quiet": false, "no_print": false, "target": "postgres", "compile": true, "which": "generate", "rpc_method": "docs.generate", "indirect_selection": "eager"}} \ No newline at end of file From 186b8d9698e8b56ab04502192530dd680b2e504c Mon Sep 17 00:00:00 2001 From: Sheri Nguyen Date: Thu, 17 Nov 2022 11:35:47 -0900 Subject: [PATCH 17/19] Update pipeline, CI refs, run models --- .buildkite/pipeline.yml | 2 +- .buildkite/scripts/run_models.sh | 2 ++ .github/pull_request_template.md | 4 ++-- integration_tests/ci/sample.profiles.yml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index b84fe04..4c799f0 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -58,7 +58,7 @@ steps: commands: | bash .buildkite/scripts/run_models.sh redshift - - label: ":upside_down_face: Run Tests - Databricks" + - label: ":bricks: Run Tests - Databricks" key: "run_dbt_databricks" plugins: - docker#v3.13.0: diff --git a/.buildkite/scripts/run_models.sh b/.buildkite/scripts/run_models.sh index 5d805b9..ea3de4b 100644 --- a/.buildkite/scripts/run_models.sh +++ b/.buildkite/scripts/run_models.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -euo pipefail + apt-get update apt-get install libsasl2-dev diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f450926..50ee0df 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -28,9 +28,9 @@ **How did you test the PR changes?** - + -- [ ] CircleCi +- [ ] Buildkite - [ ] Local (please provide additional testing details below) **Select which warehouse(s) were used to test the PR** diff --git a/integration_tests/ci/sample.profiles.yml b/integration_tests/ci/sample.profiles.yml index e76547a..0bca0b5 100644 --- a/integration_tests/ci/sample.profiles.yml +++ b/integration_tests/ci/sample.profiles.yml @@ -1,5 +1,5 @@ -# HEY! This file is used in the dbt package integrations tests with CircleCI. +# HEY! This file is used in the dbt package integrations tests with Buildkite. # You should __NEVER__ check credentials into version control. Thanks for reading :) config: From ef92735fbb178074bf68e7d542287eceab21754d Mon Sep 17 00:00:00 2001 From: fivetran-joemarkiewicz Date: Mon, 19 Dec 2022 14:41:43 -0600 Subject: [PATCH 18/19] docs regen --- README.md | 11 ++++++++++- docs/catalog.json | 2 +- docs/graph.gpickle | Bin 380947 -> 0 bytes docs/manifest.json | 2 +- docs/partial_parse.msgpack | Bin 1341335 -> 0 bytes docs/run_results.json | 2 +- 6 files changed, 13 insertions(+), 4 deletions(-) delete mode 100644 docs/graph.gpickle delete mode 100644 docs/partial_parse.msgpack diff --git a/README.md b/README.md index 3ff6de0..4248cb2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

+ href="https://github.com/fivetran/dbt_shopify_holistic_reporting/blob/main/LICENSE"> @@ -95,14 +95,23 @@ packages: - package: fivetran/shopify version: [">=0.7.0", "<0.8.0"] + - package: fivetran/shopify_source + version: [">=0.7.0", "<0.8.0"] + - package: fivetran/klaviyo version: [">=0.5.0", "<0.6.0"] + - package: fivetran/klaviyo_source + version: [">=0.5.0", "<0.6.0"] + - package: fivetran/fivetran_utils version: [">=0.4.0", "<0.5.0"] - package: dbt-labs/dbt_utils version: [">=1.0.0", "<2.0.0"] + + - package: dbt-labs/spark_utils + version: [">=0.3.0", "<0.4.0"] ``` diff --git a/docs/catalog.json b/docs/catalog.json index 1040d0d..3860e87 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.3.0", "generated_at": "2022-10-28T17:32:18.565077Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.shopify_holistic_reporting_integration_tests.campaign"}, "seed.shopify_holistic_reporting_integration_tests.event": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, "seed.shopify_holistic_reporting_integration_tests.flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.shopify_holistic_reporting_integration_tests.flow"}, "seed.shopify_holistic_reporting_integration_tests.integration": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.shopify_holistic_reporting_integration_tests.integration"}, "seed.shopify_holistic_reporting_integration_tests.metric": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.metric"}, "seed.shopify_holistic_reporting_integration_tests.person": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.shopify_holistic_reporting_integration_tests.person"}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_customer_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_adjustment_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_holistic_reporting_integration_tests.shopify_order_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_line_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_order_line_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_product_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_holistic_reporting_integration_tests.shopify_product_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_product_variant_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1", "name": "shopify_transaction_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__campaign_flow_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"last_touch_campaign_id": {"type": "character varying", "index": 1, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 2, "name": "last_touch_flow_id", "comment": null}, "variation_id": {"type": "text", "index": 3, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 5, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 6, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 7, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 8, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 9, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 10, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 11, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 12, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 13, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 14, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 15, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 16, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 17, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 18, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 19, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 20, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 21, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 22, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 23, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 24, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 25, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 26, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 27, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 28, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 29, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 30, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 31, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 32, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 33, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 34, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 35, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 36, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 37, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 38, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 39, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 40, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 41, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 42, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 43, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 44, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 45, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 46, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 47, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 48, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 49, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 50, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 51, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 52, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 53, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 54, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 55, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 56, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 57, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 58, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 59, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 60, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 62, "name": "unique_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__campaign_flow_metrics"}, "model.klaviyo.int_klaviyo__event_attribution": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__event_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 16, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 17, "name": "touch_type", "comment": null}, "touch_session": {"type": "bigint", "index": 18, "name": "touch_session", "comment": null}, "session_start_at": {"type": "timestamp without time zone", "index": 19, "name": "session_start_at", "comment": null}, "session_event_type": {"type": "text", "index": 20, "name": "session_event_type", "comment": null}, "last_touch_id": {"type": "character varying", "index": 21, "name": "last_touch_id", "comment": null}, "session_touch_type": {"type": "text", "index": 22, "name": "session_touch_type", "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.klaviyo.int_klaviyo__event_attribution"}, "model.klaviyo.int_klaviyo__person_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "name": "int_klaviyo__person_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 3, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 4, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 5, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 6, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 7, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 8, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 9, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 10, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 11, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 12, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 13, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 16, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 17, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 18, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 19, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 20, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 21, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 22, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 23, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 24, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 25, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 26, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 27, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 28, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 29, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 30, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 31, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 32, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 33, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 34, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 35, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 36, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 37, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 38, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 39, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 40, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 41, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 42, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 43, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 44, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 45, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__person_metrics"}, "model.klaviyo.klaviyo__campaigns": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__campaigns", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 16, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 17, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 18, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 19, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 20, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 21, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 22, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 23, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 24, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 25, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 26, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 27, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 28, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 29, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 30, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 31, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 32, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 33, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 34, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 35, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 36, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 37, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 38, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 39, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 40, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 41, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 42, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 43, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 44, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 45, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 46, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 47, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 48, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 49, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 50, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 52, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 53, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 54, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 55, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 56, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 57, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 58, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 59, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 60, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 61, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 62, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 63, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 64, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 65, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 66, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 67, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 68, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 69, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 70, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 71, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 72, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 73, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 74, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "campaign_variation_key": {"type": "text", "index": 75, "name": "campaign_variation_key", "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.klaviyo.klaviyo__campaigns"}, "model.klaviyo.klaviyo__events": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "uuid": {"type": "text", "index": 9, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 10, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 13, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 14, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 15, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 16, "name": "touch_type", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 18, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 19, "name": "last_touch_flow_id", "comment": null}, "last_touch_at": {"type": "timestamp without time zone", "index": 20, "name": "last_touch_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 21, "name": "last_touch_event_type", "comment": null}, "last_touch_type": {"type": "text", "index": 22, "name": "last_touch_type", "comment": null}, "campaign_name": {"type": "text", "index": 23, "name": "campaign_name", "comment": null}, "campaign_type": {"type": "text", "index": 24, "name": "campaign_type", "comment": null}, "campaign_subject_line": {"type": "text", "index": 25, "name": "campaign_subject_line", "comment": null}, "flow_name": {"type": "text", "index": 26, "name": "flow_name", "comment": null}, "person_city": {"type": "text", "index": 27, "name": "person_city", "comment": null}, "person_country": {"type": "text", "index": 28, "name": "person_country", "comment": null}, "person_region": {"type": "text", "index": 29, "name": "person_region", "comment": null}, "person_email": {"type": "text", "index": 30, "name": "person_email", "comment": null}, "person_timezone": {"type": "text", "index": 31, "name": "person_timezone", "comment": null}, "integration_name": {"type": "text", "index": 32, "name": "integration_name", "comment": null}, "integration_category": {"type": "text", "index": 33, "name": "integration_category", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo.klaviyo__events"}, "model.klaviyo.klaviyo__flows": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__flows", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 9, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 10, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 18, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 19, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 20, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 21, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 22, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 23, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 24, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 25, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 26, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 27, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 28, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 29, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 30, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 31, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 32, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 33, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 34, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 35, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 36, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 37, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 38, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 39, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 40, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 42, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 43, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 44, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 45, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 46, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 47, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 48, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 49, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 50, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 51, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 52, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 53, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 54, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 55, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 56, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 57, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 58, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 59, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 60, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 61, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 62, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 63, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 64, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 65, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 66, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 67, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "flow_variation_key": {"type": "text", "index": 68, "name": "flow_variation_key", "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.klaviyo.klaviyo__flows"}, "model.klaviyo.klaviyo__person_campaign_flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__person_campaign_flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 2, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 3, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 5, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 6, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 7, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 8, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 9, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 10, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 11, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 12, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 13, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 14, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 15, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 16, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 17, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 18, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 19, "name": "count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "bigint", "index": 20, "name": "count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "bigint", "index": 21, "name": "count_fulfilled_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 22, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 23, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 24, "name": "count_opened_email", "comment": null}, "count_bounced_email": {"type": "bigint", "index": 25, "name": "count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "bigint", "index": 27, "name": "count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "bigint", "index": 28, "name": "count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "bigint", "index": 29, "name": "count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 30, "name": "count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "bigint", "index": 31, "name": "count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "bigint", "index": 32, "name": "count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "bigint", "index": 33, "name": "count_merged_profile", "comment": null}, "count_received_sms": {"type": "bigint", "index": 34, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 35, "name": "count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "bigint", "index": 36, "name": "count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 37, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 38, "name": "count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "bigint", "index": 39, "name": "count_failed_to_deliver_sms", "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.klaviyo.klaviyo__person_campaign_flow"}, "model.klaviyo.klaviyo__persons": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_klaviyo", "name": "klaviyo__persons", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 19, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 20, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 21, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 22, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 23, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 24, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 25, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 26, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 27, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 31, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 33, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 35, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 37, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 38, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 39, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 40, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 41, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 42, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 43, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 44, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 45, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 46, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 47, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 48, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 49, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 50, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 53, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 54, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 55, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 56, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 57, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 58, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 59, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 60, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.klaviyo__persons"}, "model.shopify.shopify__calendar": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__calendar", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "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.shopify.shopify__calendar"}, "model.shopify.shopify__customer_cohorts": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__customer_cohorts", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_month": {"type": "timestamp without time zone", "index": 1, "name": "date_month", "comment": null}, "customer_id": {"type": "bigint", "index": 2, "name": "customer_id", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "first_order_timestamp", "comment": null}, "cohort_month": {"type": "timestamp without time zone", "index": 4, "name": "cohort_month", "comment": null}, "source_relation": {"type": "text", "index": 5, "name": "source_relation", "comment": null}, "order_count_in_month": {"type": "bigint", "index": 6, "name": "order_count_in_month", "comment": null}, "total_price_in_month": {"type": "double precision", "index": 7, "name": "total_price_in_month", "comment": null}, "line_item_count_in_month": {"type": "numeric", "index": 8, "name": "line_item_count_in_month", "comment": null}, "total_price_lifetime": {"type": "double precision", "index": 9, "name": "total_price_lifetime", "comment": null}, "order_count_lifetime": {"type": "numeric", "index": 10, "name": "order_count_lifetime", "comment": null}, "line_item_count_lifetime": {"type": "numeric", "index": 11, "name": "line_item_count_lifetime", "comment": null}, "cohort_month_number": {"type": "bigint", "index": 12, "name": "cohort_month_number", "comment": null}, "customer_cohort_id": {"type": "text", "index": 13, "name": "customer_cohort_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.shopify.shopify__customer_cohorts"}, "model.shopify.shopify__customers": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__customers", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "phone": {"type": "integer", "index": 9, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 10, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 11, "name": "is_tax_exempt", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 12, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 13, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 14, "name": "source_relation", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 15, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 16, "name": "most_recent_order_timestamp", "comment": null}, "average_order_value": {"type": "double precision", "index": 17, "name": "average_order_value", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 18, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 19, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 20, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "bigint", "index": 21, "name": "lifetime_count_orders", "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.shopify.shopify__customers"}, "model.shopify.shopify__order_lines": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__order_lines", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "comment": null}, "refunded_quantity": {"type": "bigint", "index": 28, "name": "refunded_quantity", "comment": null}, "refunded_subtotal": {"type": "numeric", "index": 29, "name": "refunded_subtotal", "comment": null}, "quantity_net_refunds": {"type": "bigint", "index": 30, "name": "quantity_net_refunds", "comment": null}, "subtotal_net_refunds": {"type": "numeric", "index": 31, "name": "subtotal_net_refunds", "comment": null}, "variant_created_at": {"type": "text", "index": 32, "name": "variant_created_at", "comment": null}, "variant_updated_at": {"type": "text", "index": 33, "name": "variant_updated_at", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 34, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 35, "name": "image_id", "comment": null}, "variant_title": {"type": "text", "index": 36, "name": "variant_title", "comment": null}, "variant_price": {"type": "integer", "index": 37, "name": "variant_price", "comment": null}, "variant_sku": {"type": "integer", "index": 38, "name": "variant_sku", "comment": null}, "variant_position": {"type": "integer", "index": 39, "name": "variant_position", "comment": null}, "variant_inventory_policy": {"type": "text", "index": 40, "name": "variant_inventory_policy", "comment": null}, "variant_compare_at_price": {"type": "integer", "index": 41, "name": "variant_compare_at_price", "comment": null}, "variant_fulfillment_service": {"type": "text", "index": 42, "name": "variant_fulfillment_service", "comment": null}, "variant_inventory_management": {"type": "text", "index": 43, "name": "variant_inventory_management", "comment": null}, "variant_is_taxable": {"type": "boolean", "index": 44, "name": "variant_is_taxable", "comment": null}, "variant_barcode": {"type": "integer", "index": 45, "name": "variant_barcode", "comment": null}, "variant_grams": {"type": "integer", "index": 46, "name": "variant_grams", "comment": null}, "variant_inventory_quantity": {"type": "integer", "index": 47, "name": "variant_inventory_quantity", "comment": null}, "variant_weight": {"type": "integer", "index": 48, "name": "variant_weight", "comment": null}, "variant_weight_unit": {"type": "text", "index": 49, "name": "variant_weight_unit", "comment": null}, "variant_option_1": {"type": "text", "index": 50, "name": "variant_option_1", "comment": null}, "variant_option_2": {"type": "integer", "index": 51, "name": "variant_option_2", "comment": null}, "variant_option_3": {"type": "integer", "index": 52, "name": "variant_option_3", "comment": null}, "variant_tax_code": {"type": "text", "index": 53, "name": "variant_tax_code", "comment": null}, "variant_is_requiring_shipping": {"type": "boolean", "index": 54, "name": "variant_is_requiring_shipping", "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.shopify.shopify__order_lines"}, "model.shopify.shopify__orders": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "comment": null}, "shipping_cost": {"type": "double precision", "index": 69, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 70, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 71, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 72, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 73, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 74, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 75, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 76, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 77, "name": "new_vs_repeat", "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.shopify.shopify__orders"}, "model.shopify.shopify__products": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__products", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "quantity_sold": {"type": "bigint", "index": 13, "name": "quantity_sold", "comment": null}, "subtotal_sold": {"type": "bigint", "index": 14, "name": "subtotal_sold", "comment": null}, "quantity_sold_net_refunds": {"type": "numeric", "index": 15, "name": "quantity_sold_net_refunds", "comment": null}, "subtotal_sold_net_refunds": {"type": "numeric", "index": 16, "name": "subtotal_sold_net_refunds", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 17, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 18, "name": "most_recent_order_timestamp", "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.shopify.shopify__products"}, "model.shopify.shopify__transactions": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify", "name": "shopify__transactions", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "comment": null}, "exchange_rate": {"type": "numeric", "index": 33, "name": "exchange_rate", "comment": null}, "currency_exchange_calculated_amount": {"type": "double precision", "index": 34, "name": "currency_exchange_calculated_amount", "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.shopify.shopify__transactions"}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__daily_klaviyo_user_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 18, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 19, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 20, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 21, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 22, "name": "count_refunded_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 23, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 24, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 25, "name": "count_opened_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 27, "name": "count_unsubscribed", "comment": null}, "count_received_sms": {"type": "bigint", "index": 28, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 29, "name": "count_clicked_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 30, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 31, "name": "count_unsubscribed_from_sms", "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.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__daily_shopify_customer_orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 5, "name": "last_touch_campaign_name", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 6, "name": "last_touch_flow_name", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 7, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 8, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 9, "name": "last_touch_campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "total_orders": {"type": "bigint", "index": 11, "name": "total_orders", "comment": null}, "total_price": {"type": "double precision", "index": 12, "name": "total_price", "comment": null}, "count_line_items": {"type": "numeric", "index": 13, "name": "count_line_items", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 14, "name": "total_line_items_price", "comment": null}, "total_discounts": {"type": "double precision", "index": 15, "name": "total_discounts", "comment": null}, "total_tax": {"type": "bigint", "index": 16, "name": "total_tax", "comment": null}, "total_shipping_cost": {"type": "double precision", "index": 17, "name": "total_shipping_cost", "comment": null}, "total_refund_subtotal": {"type": "numeric", "index": 18, "name": "total_refund_subtotal", "comment": null}, "total_refund_tax": {"type": "numeric", "index": 19, "name": "total_refund_tax", "comment": null}, "count_cancelled_orders": {"type": "bigint", "index": 20, "name": "count_cancelled_orders", "comment": null}, "count_products": {"type": "numeric", "index": 21, "name": "count_products", "comment": null}, "count_product_variants": {"type": "numeric", "index": 22, "name": "count_product_variants", "comment": null}, "sum_quantity": {"type": "numeric", "index": 23, "name": "sum_quantity", "comment": null}, "total_order_adjustment_amount": {"type": "numeric", "index": 24, "name": "total_order_adjustment_amount", "comment": null}, "total_order_adjustment_tax_amount": {"type": "double precision", "index": 25, "name": "total_order_adjustment_tax_amount", "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.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__klaviyo_person_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "person_ids": {"type": "text", "index": 3, "name": "person_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_klaviyo_account_made_at": {"type": "text", "index": 6, "name": "first_klaviyo_account_made_at", "comment": null}, "last_klaviyo_account_made_at": {"type": "text", "index": 7, "name": "last_klaviyo_account_made_at", "comment": null}, "last_updated_at": {"type": "text", "index": 8, "name": "last_updated_at", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 9, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 10, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 11, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 12, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 13, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 14, "name": "last_flow_touch_at", "comment": null}, "count_total_campaigns": {"type": "numeric", "index": 15, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "numeric", "index": 16, "name": "count_total_flows", "comment": null}, "address_1": {"type": "text", "index": 17, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 18, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 19, "name": "city", "comment": null}, "country": {"type": "text", "index": 20, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 21, "name": "zip", "comment": null}, "latitude": {"type": "double precision", "index": 22, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 23, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 24, "name": "organization", "comment": null}, "region": {"type": "text", "index": 25, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 26, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 27, "name": "title", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 29, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 31, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 33, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 35, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 37, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 38, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 39, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 40, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 41, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 42, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 43, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 44, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 45, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 46, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 47, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 48, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 49, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 50, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 53, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 54, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 55, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 56, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 57, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 58, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 59, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 60, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 61, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 62, "name": "total_count_failed_to_deliver_sms", "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.shopify_holistic_reporting.int__klaviyo_person_rollup"}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "int__shopify_customer_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "customer_ids": {"type": "text", "index": 3, "name": "customer_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_shopify_account_made_at": {"type": "timestamp without time zone", "index": 6, "name": "first_shopify_account_made_at", "comment": null}, "last_shopify_account_made_at": {"type": "timestamp without time zone", "index": 7, "name": "last_shopify_account_made_at", "comment": null}, "first_order_at": {"type": "timestamp without time zone", "index": 8, "name": "first_order_at", "comment": null}, "last_order_at": {"type": "timestamp without time zone", "index": 9, "name": "last_order_at", "comment": null}, "last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "last_updated_at", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 11, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 12, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 13, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "numeric", "index": 14, "name": "lifetime_count_orders", "comment": null}, "average_order_value": {"type": "double precision", "index": 15, "name": "average_order_value", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 16, "name": "has_accepted_marketing", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 17, "name": "is_tax_exempt", "comment": null}, "is_verified_email": {"type": "boolean", "index": 18, "name": "is_verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 19, "name": "default_address_id", "comment": null}, "account_state": {"type": "text", "index": 20, "name": "account_state", "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.shopify_holistic_reporting.int__shopify_customer_rollup"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__customer_enhanced", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 2, "name": "full_name", "comment": null}, "shopify_customer_ids": {"type": "text", "index": 3, "name": "shopify_customer_ids", "comment": null}, "klaviyo_person_ids": {"type": "text", "index": 4, "name": "klaviyo_person_ids", "comment": null}, "phone_number": {"type": "text", "index": 5, "name": "phone_number", "comment": null}, "shopify_customer_first_created_at": {"type": "timestamp without time zone", "index": 6, "name": "shopify_customer_first_created_at", "comment": null}, "shopify_customer_last_created_at": {"type": "timestamp without time zone", "index": 7, "name": "shopify_customer_last_created_at", "comment": null}, "klaviyo_person_first_created_at": {"type": "text", "index": 8, "name": "klaviyo_person_first_created_at", "comment": null}, "klaviyo_person_last_created_at": {"type": "text", "index": 9, "name": "klaviyo_person_last_created_at", "comment": null}, "shopify_customer_last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "shopify_customer_last_updated_at", "comment": null}, "klaviyo_person_last_updated_at": {"type": "text", "index": 11, "name": "klaviyo_person_last_updated_at", "comment": null}, "is_shopify_email_verified": {"type": "boolean", "index": 12, "name": "is_shopify_email_verified", "comment": null}, "shopify_first_order_at": {"type": "timestamp without time zone", "index": 13, "name": "shopify_first_order_at", "comment": null}, "shopify_last_order_at": {"type": "timestamp without time zone", "index": 14, "name": "shopify_last_order_at", "comment": null}, "shopify_lifetime_total_spent": {"type": "double precision", "index": 15, "name": "shopify_lifetime_total_spent", "comment": null}, "shopify_lifetime_total_refunded": {"type": "double precision", "index": 16, "name": "shopify_lifetime_total_refunded", "comment": null}, "shopify_lifetime_total_amount": {"type": "double precision", "index": 17, "name": "shopify_lifetime_total_amount", "comment": null}, "shopify_lifetime_count_orders": {"type": "numeric", "index": 18, "name": "shopify_lifetime_count_orders", "comment": null}, "shopify_average_order_value": {"type": "double precision", "index": 19, "name": "shopify_average_order_value", "comment": null}, "shopify_has_accepted_marketing": {"type": "boolean", "index": 20, "name": "shopify_has_accepted_marketing", "comment": null}, "shopify_is_tax_exempt": {"type": "boolean", "index": 21, "name": "shopify_is_tax_exempt", "comment": null}, "shopify_default_address_id": {"type": "bigint", "index": 22, "name": "shopify_default_address_id", "comment": null}, "shopify_account_state": {"type": "text", "index": 23, "name": "shopify_account_state", "comment": null}, "shopify_source_relation": {"type": "text", "index": 24, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 25, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_first_campaign_touch_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_first_campaign_touch_at", "comment": null}, "klaviyo_last_campaign_touch_at": {"type": "timestamp without time zone", "index": 28, "name": "klaviyo_last_campaign_touch_at", "comment": null}, "klaviyo_first_flow_touch_at": {"type": "timestamp without time zone", "index": 29, "name": "klaviyo_first_flow_touch_at", "comment": null}, "klaviyo_last_flow_touch_at": {"type": "timestamp without time zone", "index": 30, "name": "klaviyo_last_flow_touch_at", "comment": null}, "klaviyo_count_total_campaigns": {"type": "numeric", "index": 31, "name": "klaviyo_count_total_campaigns", "comment": null}, "klaviyo_count_total_flows": {"type": "numeric", "index": 32, "name": "klaviyo_count_total_flows", "comment": null}, "klaviyo_address_1": {"type": "text", "index": 33, "name": "klaviyo_address_1", "comment": null}, "klaviyo_address_2": {"type": "integer", "index": 34, "name": "klaviyo_address_2", "comment": null}, "klaviyo_city": {"type": "text", "index": 35, "name": "klaviyo_city", "comment": null}, "klaviyo_country": {"type": "text", "index": 36, "name": "klaviyo_country", "comment": null}, "klaviyo_zip": {"type": "integer", "index": 37, "name": "klaviyo_zip", "comment": null}, "klaviyo_latitude": {"type": "double precision", "index": 38, "name": "klaviyo_latitude", "comment": null}, "klaviyo_longitude": {"type": "double precision", "index": 39, "name": "klaviyo_longitude", "comment": null}, "klaviyo_organization": {"type": "integer", "index": 40, "name": "klaviyo_organization", "comment": null}, "klaviyo_region": {"type": "text", "index": 41, "name": "klaviyo_region", "comment": null}, "klaviyo_timezone": {"type": "text", "index": 42, "name": "klaviyo_timezone", "comment": null}, "klaviyo_title": {"type": "integer", "index": 43, "name": "klaviyo_title", "comment": null}, "klaviyo_total_sum_revenue_refunded_order": {"type": "numeric", "index": 44, "name": "klaviyo_total_sum_revenue_refunded_order", "comment": null}, "klaviyo_organic_sum_revenue_refunded_order": {"type": "numeric", "index": 45, "name": "klaviyo_organic_sum_revenue_refunded_order", "comment": null}, "klaviyo_total_sum_revenue_placed_order": {"type": "numeric", "index": 46, "name": "klaviyo_total_sum_revenue_placed_order", "comment": null}, "klaviyo_organic_sum_revenue_placed_order": {"type": "numeric", "index": 47, "name": "klaviyo_organic_sum_revenue_placed_order", "comment": null}, "klaviyo_total_sum_revenue_ordered_product": {"type": "numeric", "index": 48, "name": "klaviyo_total_sum_revenue_ordered_product", "comment": null}, "klaviyo_organic_sum_revenue_ordered_product": {"type": "numeric", "index": 49, "name": "klaviyo_organic_sum_revenue_ordered_product", "comment": null}, "klaviyo_total_sum_revenue_checkout_started": {"type": "numeric", "index": 50, "name": "klaviyo_total_sum_revenue_checkout_started", "comment": null}, "klaviyo_organic_sum_revenue_checkout_started": {"type": "numeric", "index": 51, "name": "klaviyo_organic_sum_revenue_checkout_started", "comment": null}, "klaviyo_total_sum_revenue_cancelled_order": {"type": "numeric", "index": 52, "name": "klaviyo_total_sum_revenue_cancelled_order", "comment": null}, "klaviyo_organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 53, "name": "klaviyo_organic_sum_revenue_cancelled_order", "comment": null}, "klaviyo_total_count_active_on_site": {"type": "numeric", "index": 54, "name": "klaviyo_total_count_active_on_site", "comment": null}, "klaviyo_total_count_viewed_product": {"type": "numeric", "index": 55, "name": "klaviyo_total_count_viewed_product", "comment": null}, "klaviyo_total_count_ordered_product": {"type": "numeric", "index": 56, "name": "klaviyo_total_count_ordered_product", "comment": null}, "klaviyo_total_count_placed_order": {"type": "numeric", "index": 57, "name": "klaviyo_total_count_placed_order", "comment": null}, "klaviyo_total_count_refunded_order": {"type": "numeric", "index": 58, "name": "klaviyo_total_count_refunded_order", "comment": null}, "klaviyo_total_count_cancelled_order": {"type": "numeric", "index": 59, "name": "klaviyo_total_count_cancelled_order", "comment": null}, "klaviyo_total_count_fulfilled_order": {"type": "numeric", "index": 60, "name": "klaviyo_total_count_fulfilled_order", "comment": null}, "klaviyo_total_count_received_email": {"type": "numeric", "index": 61, "name": "klaviyo_total_count_received_email", "comment": null}, "klaviyo_total_count_clicked_email": {"type": "numeric", "index": 62, "name": "klaviyo_total_count_clicked_email", "comment": null}, "klaviyo_total_count_opened_email": {"type": "numeric", "index": 63, "name": "klaviyo_total_count_opened_email", "comment": null}, "klaviyo_total_count_bounced_email": {"type": "numeric", "index": 64, "name": "klaviyo_total_count_bounced_email", "comment": null}, "klaviyo_total_count_marked_email_as_spam": {"type": "numeric", "index": 65, "name": "klaviyo_total_count_marked_email_as_spam", "comment": null}, "klaviyo_total_count_dropped_email": {"type": "numeric", "index": 66, "name": "klaviyo_total_count_dropped_email", "comment": null}, "klaviyo_total_count_subscribed_to_list": {"type": "numeric", "index": 67, "name": "klaviyo_total_count_subscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed_to_list": {"type": "numeric", "index": 68, "name": "klaviyo_total_count_unsubscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed": {"type": "numeric", "index": 69, "name": "klaviyo_total_count_unsubscribed", "comment": null}, "klaviyo_total_count_updated_email_preferences": {"type": "numeric", "index": 70, "name": "klaviyo_total_count_updated_email_preferences", "comment": null}, "klaviyo_total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 71, "name": "klaviyo_total_count_subscribed_to_back_in_stock", "comment": null}, "klaviyo_total_count_merged_profile": {"type": "numeric", "index": 72, "name": "klaviyo_total_count_merged_profile", "comment": null}, "klaviyo_total_count_received_sms": {"type": "numeric", "index": 73, "name": "klaviyo_total_count_received_sms", "comment": null}, "klaviyo_total_count_clicked_sms": {"type": "numeric", "index": 74, "name": "klaviyo_total_count_clicked_sms", "comment": null}, "klaviyo_total_count_consented_to_receive_sms": {"type": "numeric", "index": 75, "name": "klaviyo_total_count_consented_to_receive_sms", "comment": null}, "klaviyo_total_count_sent_sms": {"type": "numeric", "index": 76, "name": "klaviyo_total_count_sent_sms", "comment": null}, "klaviyo_total_count_unsubscribed_from_sms": {"type": "numeric", "index": 77, "name": "klaviyo_total_count_unsubscribed_from_sms", "comment": null}, "klaviyo_total_count_failed_to_deliver_sms": {"type": "numeric", "index": 78, "name": "klaviyo_total_count_failed_to_deliver_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 79, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__daily_customer_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "shopify_total_orders": {"type": "bigint", "index": 10, "name": "shopify_total_orders", "comment": null}, "shopify_total_price": {"type": "double precision", "index": 11, "name": "shopify_total_price", "comment": null}, "shopify_count_line_items": {"type": "numeric", "index": 12, "name": "shopify_count_line_items", "comment": null}, "shopify_total_line_items_price": {"type": "double precision", "index": 13, "name": "shopify_total_line_items_price", "comment": null}, "shopify_total_discounts": {"type": "double precision", "index": 14, "name": "shopify_total_discounts", "comment": null}, "shopify_total_tax": {"type": "bigint", "index": 15, "name": "shopify_total_tax", "comment": null}, "shopify_total_shipping_cost": {"type": "double precision", "index": 16, "name": "shopify_total_shipping_cost", "comment": null}, "shopify_total_refund_subtotal": {"type": "numeric", "index": 17, "name": "shopify_total_refund_subtotal", "comment": null}, "shopify_total_refund_tax": {"type": "numeric", "index": 18, "name": "shopify_total_refund_tax", "comment": null}, "shopify_count_cancelled_orders": {"type": "bigint", "index": 19, "name": "shopify_count_cancelled_orders", "comment": null}, "shopify_count_products": {"type": "numeric", "index": 20, "name": "shopify_count_products", "comment": null}, "shopify_count_product_variants": {"type": "numeric", "index": 21, "name": "shopify_count_product_variants", "comment": null}, "shopify_sum_quantity": {"type": "numeric", "index": 22, "name": "shopify_sum_quantity", "comment": null}, "shopify_total_order_adjustment_amount": {"type": "numeric", "index": 23, "name": "shopify_total_order_adjustment_amount", "comment": null}, "shopify_total_order_adjustment_tax_amount": {"type": "double precision", "index": 24, "name": "shopify_total_order_adjustment_tax_amount", "comment": null}, "shopify_source_relation": {"type": "text", "index": 25, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "klaviyo_sum_revenue_refunded_order", "comment": null}, "klaviyo_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "klaviyo_sum_revenue_placed_order", "comment": null}, "klaviyo_sum_revenue_ordered_product": {"type": "numeric", "index": 30, "name": "klaviyo_sum_revenue_ordered_product", "comment": null}, "klaviyo_sum_revenue_checkout_started": {"type": "numeric", "index": 31, "name": "klaviyo_sum_revenue_checkout_started", "comment": null}, "klaviyo_sum_revenue_cancelled_order": {"type": "numeric", "index": 32, "name": "klaviyo_sum_revenue_cancelled_order", "comment": null}, "klaviyo_count_active_on_site": {"type": "bigint", "index": 33, "name": "klaviyo_count_active_on_site", "comment": null}, "klaviyo_count_viewed_product": {"type": "bigint", "index": 34, "name": "klaviyo_count_viewed_product", "comment": null}, "klaviyo_count_ordered_product": {"type": "bigint", "index": 35, "name": "klaviyo_count_ordered_product", "comment": null}, "klaviyo_count_placed_order": {"type": "bigint", "index": 36, "name": "klaviyo_count_placed_order", "comment": null}, "klaviyo_count_refunded_order": {"type": "bigint", "index": 37, "name": "klaviyo_count_refunded_order", "comment": null}, "klaviyo_count_received_email": {"type": "bigint", "index": 38, "name": "klaviyo_count_received_email", "comment": null}, "klaviyo_count_clicked_email": {"type": "bigint", "index": 39, "name": "klaviyo_count_clicked_email", "comment": null}, "klaviyo_count_opened_email": {"type": "bigint", "index": 40, "name": "klaviyo_count_opened_email", "comment": null}, "klaviyo_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "klaviyo_count_marked_email_as_spam", "comment": null}, "klaviyo_count_unsubscribed": {"type": "bigint", "index": 42, "name": "klaviyo_count_unsubscribed", "comment": null}, "klaviyo_count_received_sms": {"type": "bigint", "index": 43, "name": "klaviyo_count_received_sms", "comment": null}, "klaviyo_count_clicked_sms": {"type": "bigint", "index": 44, "name": "klaviyo_count_clicked_sms", "comment": null}, "klaviyo_count_sent_sms": {"type": "bigint", "index": 45, "name": "klaviyo_count_sent_sms", "comment": null}, "klaviyo_count_unsubscribed_from_sms": {"type": "bigint", "index": 46, "name": "klaviyo_count_unsubscribed_from_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 47, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "name": "shopify_holistic_reporting__orders_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "shipping_cost": {"type": "double precision", "index": 68, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 69, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 70, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 71, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 72, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 73, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 74, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 75, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 76, "name": "new_vs_repeat", "comment": null}, "is_attributed": {"type": "boolean", "index": 77, "name": "is_attributed", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 78, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 79, "name": "last_touch_flow_id", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 80, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 81, "name": "last_touch_campaign_name", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 82, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 83, "name": "last_touch_campaign_type", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 84, "name": "last_touch_flow_name", "comment": null}, "count_interactions_with_campaign": {"type": "bigint", "index": 85, "name": "count_interactions_with_campaign", "comment": null}, "count_interactions_with_flow": {"type": "bigint", "index": 86, "name": "count_interactions_with_flow", "comment": null}, "last_touch_event_id": {"type": "text", "index": 87, "name": "last_touch_event_id", "comment": null}, "last_touch_event_occurred_at": {"type": "timestamp without time zone", "index": 88, "name": "last_touch_event_occurred_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 89, "name": "last_touch_event_type", "comment": null}, "last_touch_integration_name": {"type": "text", "index": 90, "name": "last_touch_integration_name", "comment": null}, "last_touch_integration_category": {"type": "text", "index": 91, "name": "last_touch_integration_category", "comment": null}, "shopify_source_relation": {"type": "text", "index": 92, "name": "shopify_source_relation", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 93, "name": "klaviyo_source_relation", "comment": null}, "unique_order_key": {"type": "text", "index": 94, "name": "unique_order_key", "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.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, "model.klaviyo_source.stg_klaviyo__campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__campaign"}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__campaign_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.klaviyo_source.stg_klaviyo__campaign_tmp"}, "model.klaviyo_source.stg_klaviyo__event": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_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.klaviyo_source.stg_klaviyo__event"}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__event_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, "model.klaviyo_source.stg_klaviyo__flow": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__flow"}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__flow_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.klaviyo_source.stg_klaviyo__flow_tmp"}, "model.klaviyo_source.stg_klaviyo__integration": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"category": {"type": "text", "index": 1, "name": "category", "comment": null}, "integration_id": {"type": "text", "index": 2, "name": "integration_id", "comment": null}, "integration_name": {"type": "text", "index": 3, "name": "integration_name", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__integration"}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__integration_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.klaviyo_source.stg_klaviyo__integration_tmp"}, "model.klaviyo_source.stg_klaviyo__metric": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "metric_id": {"type": "text", "index": 2, "name": "metric_id", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "metric_name": {"type": "text", "index": 4, "name": "metric_name", "comment": null}, "updated_at": {"type": "text", "index": 5, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__metric"}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__metric_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.klaviyo_source.stg_klaviyo__metric_tmp"}, "model.klaviyo_source.stg_klaviyo__person": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__person"}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "name": "stg_klaviyo__person_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.klaviyo_source.stg_klaviyo__person_tmp"}, "model.shopify_source.stg_shopify__customer": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__customer", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "orders_count": {"type": "integer", "index": 9, "name": "orders_count", "comment": null}, "phone": {"type": "integer", "index": 10, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 11, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 12, "name": "is_tax_exempt", "comment": null}, "total_spent": {"type": "double precision", "index": 13, "name": "total_spent", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 14, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 15, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "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.shopify_source.stg_shopify__customer"}, "model.shopify_source.stg_shopify__customer_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__customer_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_source.stg_shopify__customer_tmp"}, "model.shopify_source.stg_shopify__order": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "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.shopify_source.stg_shopify__order"}, "model.shopify_source.stg_shopify__order_adjustment": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_adjustment", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_adjustment_id": {"type": "bigint", "index": 1, "name": "order_adjustment_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__order_adjustment"}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_adjustment_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_source.stg_shopify__order_adjustment_tmp"}, "model.shopify_source.stg_shopify__order_line": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "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.shopify_source.stg_shopify__order_line"}, "model.shopify_source.stg_shopify__order_line_refund": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "order_line_refund_id": {"type": "bigint", "index": 2, "name": "order_line_refund_id", "comment": null}, "location_id": {"type": "bigint", "index": 3, "name": "location_id", "comment": null}, "order_line_id": {"type": "bigint", "index": 4, "name": "order_line_id", "comment": null}, "subtotal": {"type": "numeric(28,6)", "index": 5, "name": "subtotal", "comment": null}, "total_tax": {"type": "numeric(28,6)", "index": 6, "name": "total_tax", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "refund_id": {"type": "bigint", "index": 8, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 9, "name": "restock_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "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.shopify_source.stg_shopify__order_line_refund"}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_source.stg_shopify__order_line_refund_tmp"}, "model.shopify_source.stg_shopify__order_line_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_line_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_source.stg_shopify__order_line_tmp"}, "model.shopify_source.stg_shopify__order_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__order_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_source.stg_shopify__order_tmp"}, "model.shopify_source.stg_shopify__product": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "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.shopify_source.stg_shopify__product"}, "model.shopify_source.stg_shopify__product_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_source.stg_shopify__product_tmp"}, "model.shopify_source.stg_shopify__product_variant": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_variant", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variant_id": {"type": "bigint", "index": 1, "name": "variant_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "text", "index": 3, "name": "created_timestamp", "comment": null}, "updated_timestamp": {"type": "text", "index": 4, "name": "updated_timestamp", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 6, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 7, "name": "image_id", "comment": null}, "title": {"type": "text", "index": 8, "name": "title", "comment": null}, "price": {"type": "integer", "index": 9, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 10, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 11, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 12, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 13, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 14, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 15, "name": "inventory_management", "comment": null}, "is_taxable": {"type": "boolean", "index": 16, "name": "is_taxable", "comment": null}, "barcode": {"type": "integer", "index": 17, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 18, "name": "grams", "comment": null}, "inventory_quantity": {"type": "integer", "index": 19, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 20, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 21, "name": "weight_unit", "comment": null}, "option_1": {"type": "text", "index": 22, "name": "option_1", "comment": null}, "option_2": {"type": "integer", "index": 23, "name": "option_2", "comment": null}, "option_3": {"type": "integer", "index": 24, "name": "option_3", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 26, "name": "old_inventory_quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 27, "name": "is_requiring_shipping", "comment": null}, "source_relation": {"type": "text", "index": 28, "name": "source_relation", "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.shopify_source.stg_shopify__product_variant"}, "model.shopify_source.stg_shopify__product_variant_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__product_variant_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_source.stg_shopify__product_variant_tmp"}, "model.shopify_source.stg_shopify__refund": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "order_id": {"type": "bigint", "index": 5, "name": "order_id", "comment": null}, "processed_at": {"type": "text", "index": 6, "name": "processed_at", "comment": null}, "restock": {"type": "boolean", "index": 7, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 8, "name": "user_id", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__refund"}, "model.shopify_source.stg_shopify__refund_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_source.stg_shopify__refund_tmp"}, "model.shopify_source.stg_shopify__transaction": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__transaction", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "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.shopify_source.stg_shopify__transaction"}, "model.shopify_source.stg_shopify__transaction_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "name": "stg_shopify__transaction_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_source.stg_shopify__transaction_tmp"}}, "sources": {}, "errors": null} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.3.0", "generated_at": "2022-12-19T20:41:14.300692Z", "invocation_id": "3d9ead59-11b7-4031-9555-dbd173d712a2", "env": {}}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.campaign": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.shopify_holistic_reporting_integration_tests.campaign"}, "seed.shopify_holistic_reporting_integration_tests.event": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, "seed.shopify_holistic_reporting_integration_tests.flow": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.shopify_holistic_reporting_integration_tests.flow"}, "seed.shopify_holistic_reporting_integration_tests.integration": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.shopify_holistic_reporting_integration_tests.integration"}, "seed.shopify_holistic_reporting_integration_tests.metric": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.metric"}, "seed.shopify_holistic_reporting_integration_tests.person": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.shopify_holistic_reporting_integration_tests.person"}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_customer_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_order_adjustment_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_order_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_holistic_reporting_integration_tests.shopify_order_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_order_line_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_order_line_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_product_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_holistic_reporting_integration_tests.shopify_product_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_product_variant_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_refund_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests", "name": "shopify_transaction_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "name": "int_klaviyo__campaign_flow_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"last_touch_campaign_id": {"type": "character varying", "index": 1, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 2, "name": "last_touch_flow_id", "comment": null}, "variation_id": {"type": "text", "index": 3, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 5, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 6, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 7, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 8, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 9, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 10, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 11, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 12, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 13, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 14, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 15, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 16, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 17, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 18, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 19, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 20, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 21, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 22, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 23, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 24, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 25, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 26, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 27, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 28, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 29, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 30, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 31, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 32, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 33, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 34, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 35, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 36, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 37, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 38, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 39, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 40, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 41, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 42, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 43, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 44, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 45, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 46, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 47, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 48, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 49, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 50, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 51, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 52, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 53, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 54, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 55, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 56, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 57, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 58, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 59, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 60, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 62, "name": "unique_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__campaign_flow_metrics"}, "model.klaviyo.int_klaviyo__event_attribution": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "name": "int_klaviyo__event_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 16, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 17, "name": "touch_type", "comment": null}, "touch_session": {"type": "bigint", "index": 18, "name": "touch_session", "comment": null}, "session_start_at": {"type": "timestamp without time zone", "index": 19, "name": "session_start_at", "comment": null}, "session_event_type": {"type": "text", "index": 20, "name": "session_event_type", "comment": null}, "last_touch_id": {"type": "character varying", "index": 21, "name": "last_touch_id", "comment": null}, "session_touch_type": {"type": "text", "index": 22, "name": "session_touch_type", "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.klaviyo.int_klaviyo__event_attribution"}, "model.klaviyo.int_klaviyo__person_metrics": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "name": "int_klaviyo__person_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 3, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 4, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 5, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 6, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 7, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 8, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 9, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 10, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 11, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 12, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 13, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 16, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 17, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 18, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 19, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 20, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 21, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 22, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 23, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 24, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 25, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 26, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 27, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 28, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 29, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 30, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 31, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 32, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 33, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 34, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 35, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 36, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 37, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 38, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 39, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 40, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 41, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 42, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 43, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 44, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 45, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.int_klaviyo__person_metrics"}, "model.klaviyo.klaviyo__campaigns": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "name": "klaviyo__campaigns", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 16, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 17, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 18, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 19, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 20, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 21, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 22, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 23, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 24, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 25, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 26, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 27, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 28, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 29, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 30, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 31, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 32, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 33, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 34, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 35, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 36, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 37, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 38, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 39, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 40, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 41, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 42, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 43, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 44, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 45, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 46, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 47, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 48, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 49, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 50, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 52, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 53, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 54, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 55, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 56, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 57, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 58, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 59, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 60, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 61, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 62, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 63, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 64, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 65, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 66, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 67, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 68, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 69, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 70, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 71, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 72, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 73, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 74, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "campaign_variation_key": {"type": "text", "index": 75, "name": "campaign_variation_key", "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.klaviyo.klaviyo__campaigns"}, "model.klaviyo.klaviyo__events": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "name": "klaviyo__events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "uuid": {"type": "text", "index": 9, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 10, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 13, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 14, "name": "unique_event_id", "comment": null}, "touch_id": {"type": "character varying", "index": 15, "name": "touch_id", "comment": null}, "touch_type": {"type": "text", "index": 16, "name": "touch_type", "comment": null}, "type": {"type": "text", "index": 17, "name": "type", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 18, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 19, "name": "last_touch_flow_id", "comment": null}, "last_touch_at": {"type": "timestamp without time zone", "index": 20, "name": "last_touch_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 21, "name": "last_touch_event_type", "comment": null}, "last_touch_type": {"type": "text", "index": 22, "name": "last_touch_type", "comment": null}, "campaign_name": {"type": "text", "index": 23, "name": "campaign_name", "comment": null}, "campaign_type": {"type": "text", "index": 24, "name": "campaign_type", "comment": null}, "campaign_subject_line": {"type": "text", "index": 25, "name": "campaign_subject_line", "comment": null}, "flow_name": {"type": "text", "index": 26, "name": "flow_name", "comment": null}, "person_city": {"type": "text", "index": 27, "name": "person_city", "comment": null}, "person_country": {"type": "text", "index": 28, "name": "person_country", "comment": null}, "person_region": {"type": "text", "index": 29, "name": "person_region", "comment": null}, "person_email": {"type": "text", "index": 30, "name": "person_email", "comment": null}, "person_timezone": {"type": "text", "index": 31, "name": "person_timezone", "comment": null}, "integration_name": {"type": "text", "index": 32, "name": "integration_name", "comment": null}, "integration_category": {"type": "text", "index": 33, "name": "integration_category", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo.klaviyo__events"}, "model.klaviyo.klaviyo__flows": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "name": "klaviyo__flows", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "comment": null}, "variation_id": {"type": "text", "index": 9, "name": "variation_id", "comment": null}, "total_count_unique_people": {"type": "bigint", "index": 10, "name": "total_count_unique_people", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "numeric", "index": 18, "name": "count_active_on_site", "comment": null}, "unique_count_active_on_site": {"type": "bigint", "index": 19, "name": "unique_count_active_on_site", "comment": null}, "count_viewed_product": {"type": "numeric", "index": 20, "name": "count_viewed_product", "comment": null}, "unique_count_viewed_product": {"type": "bigint", "index": 21, "name": "unique_count_viewed_product", "comment": null}, "count_ordered_product": {"type": "numeric", "index": 22, "name": "count_ordered_product", "comment": null}, "unique_count_ordered_product": {"type": "bigint", "index": 23, "name": "unique_count_ordered_product", "comment": null}, "count_placed_order": {"type": "numeric", "index": 24, "name": "count_placed_order", "comment": null}, "unique_count_placed_order": {"type": "bigint", "index": 25, "name": "unique_count_placed_order", "comment": null}, "count_refunded_order": {"type": "numeric", "index": 26, "name": "count_refunded_order", "comment": null}, "unique_count_refunded_order": {"type": "bigint", "index": 27, "name": "unique_count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "numeric", "index": 28, "name": "count_cancelled_order", "comment": null}, "unique_count_cancelled_order": {"type": "bigint", "index": 29, "name": "unique_count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "numeric", "index": 30, "name": "count_fulfilled_order", "comment": null}, "unique_count_fulfilled_order": {"type": "bigint", "index": 31, "name": "unique_count_fulfilled_order", "comment": null}, "count_received_email": {"type": "numeric", "index": 32, "name": "count_received_email", "comment": null}, "unique_count_received_email": {"type": "bigint", "index": 33, "name": "unique_count_received_email", "comment": null}, "count_clicked_email": {"type": "numeric", "index": 34, "name": "count_clicked_email", "comment": null}, "unique_count_clicked_email": {"type": "bigint", "index": 35, "name": "unique_count_clicked_email", "comment": null}, "count_opened_email": {"type": "numeric", "index": 36, "name": "count_opened_email", "comment": null}, "unique_count_opened_email": {"type": "bigint", "index": 37, "name": "unique_count_opened_email", "comment": null}, "count_bounced_email": {"type": "numeric", "index": 38, "name": "count_bounced_email", "comment": null}, "unique_count_bounced_email": {"type": "bigint", "index": 39, "name": "unique_count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "numeric", "index": 40, "name": "count_marked_email_as_spam", "comment": null}, "unique_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "unique_count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "numeric", "index": 42, "name": "count_dropped_email", "comment": null}, "unique_count_dropped_email": {"type": "bigint", "index": 43, "name": "unique_count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "numeric", "index": 44, "name": "count_subscribed_to_list", "comment": null}, "unique_count_subscribed_to_list": {"type": "bigint", "index": 45, "name": "unique_count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "numeric", "index": 46, "name": "count_unsubscribed_to_list", "comment": null}, "unique_count_unsubscribed_to_list": {"type": "bigint", "index": 47, "name": "unique_count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "numeric", "index": 48, "name": "count_unsubscribed", "comment": null}, "unique_count_unsubscribed": {"type": "bigint", "index": 49, "name": "unique_count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "numeric", "index": 50, "name": "count_updated_email_preferences", "comment": null}, "unique_count_updated_email_preferences": {"type": "bigint", "index": 51, "name": "unique_count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "numeric", "index": 52, "name": "count_subscribed_to_back_in_stock", "comment": null}, "unique_count_subscribed_to_back_in_stock": {"type": "bigint", "index": 53, "name": "unique_count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "numeric", "index": 54, "name": "count_merged_profile", "comment": null}, "unique_count_merged_profile": {"type": "bigint", "index": 55, "name": "unique_count_merged_profile", "comment": null}, "count_received_sms": {"type": "numeric", "index": 56, "name": "count_received_sms", "comment": null}, "unique_count_received_sms": {"type": "bigint", "index": 57, "name": "unique_count_received_sms", "comment": null}, "count_clicked_sms": {"type": "numeric", "index": 58, "name": "count_clicked_sms", "comment": null}, "unique_count_clicked_sms": {"type": "bigint", "index": 59, "name": "unique_count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "numeric", "index": 60, "name": "count_consented_to_receive_sms", "comment": null}, "unique_count_consented_to_receive_sms": {"type": "bigint", "index": 61, "name": "unique_count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "numeric", "index": 62, "name": "count_sent_sms", "comment": null}, "unique_count_sent_sms": {"type": "bigint", "index": 63, "name": "unique_count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "numeric", "index": 64, "name": "count_unsubscribed_from_sms", "comment": null}, "unique_count_unsubscribed_from_sms": {"type": "bigint", "index": 65, "name": "unique_count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "numeric", "index": 66, "name": "count_failed_to_deliver_sms", "comment": null}, "unique_count_failed_to_deliver_sms": {"type": "bigint", "index": 67, "name": "unique_count_failed_to_deliver_sms", "comment": null}, "flow_variation_key": {"type": "text", "index": 68, "name": "flow_variation_key", "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.klaviyo.klaviyo__flows"}, "model.klaviyo.klaviyo__person_campaign_flow": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "name": "klaviyo__person_campaign_flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 2, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 3, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 4, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 5, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 6, "name": "variation_id", "comment": null}, "source_relation": {"type": "text", "index": 7, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 8, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 9, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 10, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 11, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 12, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 13, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 14, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 15, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 16, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 17, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 18, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 19, "name": "count_refunded_order", "comment": null}, "count_cancelled_order": {"type": "bigint", "index": 20, "name": "count_cancelled_order", "comment": null}, "count_fulfilled_order": {"type": "bigint", "index": 21, "name": "count_fulfilled_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 22, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 23, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 24, "name": "count_opened_email", "comment": null}, "count_bounced_email": {"type": "bigint", "index": 25, "name": "count_bounced_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_dropped_email": {"type": "bigint", "index": 27, "name": "count_dropped_email", "comment": null}, "count_subscribed_to_list": {"type": "bigint", "index": 28, "name": "count_subscribed_to_list", "comment": null}, "count_unsubscribed_to_list": {"type": "bigint", "index": 29, "name": "count_unsubscribed_to_list", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 30, "name": "count_unsubscribed", "comment": null}, "count_updated_email_preferences": {"type": "bigint", "index": 31, "name": "count_updated_email_preferences", "comment": null}, "count_subscribed_to_back_in_stock": {"type": "bigint", "index": 32, "name": "count_subscribed_to_back_in_stock", "comment": null}, "count_merged_profile": {"type": "bigint", "index": 33, "name": "count_merged_profile", "comment": null}, "count_received_sms": {"type": "bigint", "index": 34, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 35, "name": "count_clicked_sms", "comment": null}, "count_consented_to_receive_sms": {"type": "bigint", "index": 36, "name": "count_consented_to_receive_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 37, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 38, "name": "count_unsubscribed_from_sms", "comment": null}, "count_failed_to_deliver_sms": {"type": "bigint", "index": 39, "name": "count_failed_to_deliver_sms", "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.klaviyo.klaviyo__person_campaign_flow"}, "model.klaviyo.klaviyo__persons": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "name": "klaviyo__persons", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "comment": null}, "count_total_campaigns": {"type": "bigint", "index": 19, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "bigint", "index": 20, "name": "count_total_flows", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 21, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 22, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 23, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 24, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 25, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 26, "name": "last_flow_touch_at", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 27, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 31, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 33, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 35, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 37, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 38, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 39, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 40, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 41, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 42, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 43, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 44, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 45, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 46, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 47, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 48, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 49, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 50, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 53, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 54, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 55, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 56, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 57, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 58, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 59, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 60, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 61, "name": "total_count_failed_to_deliver_sms", "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.klaviyo.klaviyo__persons"}, "model.shopify.shopify__calendar": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__calendar", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "timestamp without time zone", "index": 1, "name": "date_day", "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.shopify.shopify__calendar"}, "model.shopify.shopify__customer_cohorts": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__customer_cohorts", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_month": {"type": "timestamp without time zone", "index": 1, "name": "date_month", "comment": null}, "customer_id": {"type": "bigint", "index": 2, "name": "customer_id", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "first_order_timestamp", "comment": null}, "cohort_month": {"type": "timestamp without time zone", "index": 4, "name": "cohort_month", "comment": null}, "source_relation": {"type": "text", "index": 5, "name": "source_relation", "comment": null}, "order_count_in_month": {"type": "bigint", "index": 6, "name": "order_count_in_month", "comment": null}, "total_price_in_month": {"type": "double precision", "index": 7, "name": "total_price_in_month", "comment": null}, "line_item_count_in_month": {"type": "numeric", "index": 8, "name": "line_item_count_in_month", "comment": null}, "total_price_lifetime": {"type": "double precision", "index": 9, "name": "total_price_lifetime", "comment": null}, "order_count_lifetime": {"type": "numeric", "index": 10, "name": "order_count_lifetime", "comment": null}, "line_item_count_lifetime": {"type": "numeric", "index": 11, "name": "line_item_count_lifetime", "comment": null}, "cohort_month_number": {"type": "bigint", "index": 12, "name": "cohort_month_number", "comment": null}, "customer_cohort_id": {"type": "text", "index": 13, "name": "customer_cohort_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.shopify.shopify__customer_cohorts"}, "model.shopify.shopify__customers": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__customers", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "phone": {"type": "integer", "index": 9, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 10, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 11, "name": "is_tax_exempt", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 12, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 13, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 14, "name": "source_relation", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 15, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 16, "name": "most_recent_order_timestamp", "comment": null}, "average_order_value": {"type": "double precision", "index": 17, "name": "average_order_value", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 18, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 19, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 20, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "bigint", "index": 21, "name": "lifetime_count_orders", "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.shopify.shopify__customers"}, "model.shopify.shopify__order_lines": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__order_lines", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "comment": null}, "refunded_quantity": {"type": "bigint", "index": 28, "name": "refunded_quantity", "comment": null}, "refunded_subtotal": {"type": "numeric", "index": 29, "name": "refunded_subtotal", "comment": null}, "quantity_net_refunds": {"type": "bigint", "index": 30, "name": "quantity_net_refunds", "comment": null}, "subtotal_net_refunds": {"type": "numeric", "index": 31, "name": "subtotal_net_refunds", "comment": null}, "variant_created_at": {"type": "text", "index": 32, "name": "variant_created_at", "comment": null}, "variant_updated_at": {"type": "text", "index": 33, "name": "variant_updated_at", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 34, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 35, "name": "image_id", "comment": null}, "variant_title": {"type": "text", "index": 36, "name": "variant_title", "comment": null}, "variant_price": {"type": "integer", "index": 37, "name": "variant_price", "comment": null}, "variant_sku": {"type": "integer", "index": 38, "name": "variant_sku", "comment": null}, "variant_position": {"type": "integer", "index": 39, "name": "variant_position", "comment": null}, "variant_inventory_policy": {"type": "text", "index": 40, "name": "variant_inventory_policy", "comment": null}, "variant_compare_at_price": {"type": "integer", "index": 41, "name": "variant_compare_at_price", "comment": null}, "variant_fulfillment_service": {"type": "text", "index": 42, "name": "variant_fulfillment_service", "comment": null}, "variant_inventory_management": {"type": "text", "index": 43, "name": "variant_inventory_management", "comment": null}, "variant_is_taxable": {"type": "boolean", "index": 44, "name": "variant_is_taxable", "comment": null}, "variant_barcode": {"type": "integer", "index": 45, "name": "variant_barcode", "comment": null}, "variant_grams": {"type": "integer", "index": 46, "name": "variant_grams", "comment": null}, "variant_inventory_quantity": {"type": "integer", "index": 47, "name": "variant_inventory_quantity", "comment": null}, "variant_weight": {"type": "integer", "index": 48, "name": "variant_weight", "comment": null}, "variant_weight_unit": {"type": "text", "index": 49, "name": "variant_weight_unit", "comment": null}, "variant_option_1": {"type": "text", "index": 50, "name": "variant_option_1", "comment": null}, "variant_option_2": {"type": "integer", "index": 51, "name": "variant_option_2", "comment": null}, "variant_option_3": {"type": "integer", "index": 52, "name": "variant_option_3", "comment": null}, "variant_tax_code": {"type": "text", "index": 53, "name": "variant_tax_code", "comment": null}, "variant_is_requiring_shipping": {"type": "boolean", "index": 54, "name": "variant_is_requiring_shipping", "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.shopify.shopify__order_lines"}, "model.shopify.shopify__orders": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "comment": null}, "shipping_cost": {"type": "double precision", "index": 69, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 70, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 71, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 72, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 73, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 74, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 75, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 76, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 77, "name": "new_vs_repeat", "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.shopify.shopify__orders"}, "model.shopify.shopify__products": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__products", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "comment": null}, "quantity_sold": {"type": "bigint", "index": 13, "name": "quantity_sold", "comment": null}, "subtotal_sold": {"type": "bigint", "index": 14, "name": "subtotal_sold", "comment": null}, "quantity_sold_net_refunds": {"type": "numeric", "index": 15, "name": "quantity_sold_net_refunds", "comment": null}, "subtotal_sold_net_refunds": {"type": "numeric", "index": 16, "name": "subtotal_sold_net_refunds", "comment": null}, "first_order_timestamp": {"type": "timestamp without time zone", "index": 17, "name": "first_order_timestamp", "comment": null}, "most_recent_order_timestamp": {"type": "timestamp without time zone", "index": 18, "name": "most_recent_order_timestamp", "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.shopify.shopify__products"}, "model.shopify.shopify__transactions": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify", "name": "shopify__transactions", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "comment": null}, "exchange_rate": {"type": "numeric", "index": 33, "name": "exchange_rate", "comment": null}, "currency_exchange_calculated_amount": {"type": "double precision", "index": 34, "name": "currency_exchange_calculated_amount", "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.shopify.shopify__transactions"}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "int__daily_klaviyo_user_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 11, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 12, "name": "last_event_at", "comment": null}, "sum_revenue_refunded_order": {"type": "numeric", "index": 13, "name": "sum_revenue_refunded_order", "comment": null}, "sum_revenue_placed_order": {"type": "numeric", "index": 14, "name": "sum_revenue_placed_order", "comment": null}, "sum_revenue_ordered_product": {"type": "numeric", "index": 15, "name": "sum_revenue_ordered_product", "comment": null}, "sum_revenue_checkout_started": {"type": "numeric", "index": 16, "name": "sum_revenue_checkout_started", "comment": null}, "sum_revenue_cancelled_order": {"type": "numeric", "index": 17, "name": "sum_revenue_cancelled_order", "comment": null}, "count_active_on_site": {"type": "bigint", "index": 18, "name": "count_active_on_site", "comment": null}, "count_viewed_product": {"type": "bigint", "index": 19, "name": "count_viewed_product", "comment": null}, "count_ordered_product": {"type": "bigint", "index": 20, "name": "count_ordered_product", "comment": null}, "count_placed_order": {"type": "bigint", "index": 21, "name": "count_placed_order", "comment": null}, "count_refunded_order": {"type": "bigint", "index": 22, "name": "count_refunded_order", "comment": null}, "count_received_email": {"type": "bigint", "index": 23, "name": "count_received_email", "comment": null}, "count_clicked_email": {"type": "bigint", "index": 24, "name": "count_clicked_email", "comment": null}, "count_opened_email": {"type": "bigint", "index": 25, "name": "count_opened_email", "comment": null}, "count_marked_email_as_spam": {"type": "bigint", "index": 26, "name": "count_marked_email_as_spam", "comment": null}, "count_unsubscribed": {"type": "bigint", "index": 27, "name": "count_unsubscribed", "comment": null}, "count_received_sms": {"type": "bigint", "index": 28, "name": "count_received_sms", "comment": null}, "count_clicked_sms": {"type": "bigint", "index": 29, "name": "count_clicked_sms", "comment": null}, "count_sent_sms": {"type": "bigint", "index": 30, "name": "count_sent_sms", "comment": null}, "count_unsubscribed_from_sms": {"type": "bigint", "index": 31, "name": "count_unsubscribed_from_sms", "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.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "int__daily_shopify_customer_orders", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 3, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 4, "name": "last_touch_flow_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 5, "name": "last_touch_campaign_name", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 6, "name": "last_touch_flow_name", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 7, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 8, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 9, "name": "last_touch_campaign_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "comment": null}, "total_orders": {"type": "bigint", "index": 11, "name": "total_orders", "comment": null}, "total_price": {"type": "double precision", "index": 12, "name": "total_price", "comment": null}, "count_line_items": {"type": "numeric", "index": 13, "name": "count_line_items", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 14, "name": "total_line_items_price", "comment": null}, "total_discounts": {"type": "double precision", "index": 15, "name": "total_discounts", "comment": null}, "total_tax": {"type": "bigint", "index": 16, "name": "total_tax", "comment": null}, "total_shipping_cost": {"type": "double precision", "index": 17, "name": "total_shipping_cost", "comment": null}, "total_refund_subtotal": {"type": "numeric", "index": 18, "name": "total_refund_subtotal", "comment": null}, "total_refund_tax": {"type": "numeric", "index": 19, "name": "total_refund_tax", "comment": null}, "count_cancelled_orders": {"type": "bigint", "index": 20, "name": "count_cancelled_orders", "comment": null}, "count_products": {"type": "numeric", "index": 21, "name": "count_products", "comment": null}, "count_product_variants": {"type": "numeric", "index": 22, "name": "count_product_variants", "comment": null}, "sum_quantity": {"type": "numeric", "index": 23, "name": "sum_quantity", "comment": null}, "total_order_adjustment_amount": {"type": "numeric", "index": 24, "name": "total_order_adjustment_amount", "comment": null}, "total_order_adjustment_tax_amount": {"type": "double precision", "index": 25, "name": "total_order_adjustment_tax_amount", "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.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "int__klaviyo_person_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "person_ids": {"type": "text", "index": 3, "name": "person_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_klaviyo_account_made_at": {"type": "text", "index": 6, "name": "first_klaviyo_account_made_at", "comment": null}, "last_klaviyo_account_made_at": {"type": "text", "index": 7, "name": "last_klaviyo_account_made_at", "comment": null}, "last_updated_at": {"type": "text", "index": 8, "name": "last_updated_at", "comment": null}, "first_event_at": {"type": "timestamp without time zone", "index": 9, "name": "first_event_at", "comment": null}, "last_event_at": {"type": "timestamp without time zone", "index": 10, "name": "last_event_at", "comment": null}, "first_campaign_touch_at": {"type": "timestamp without time zone", "index": 11, "name": "first_campaign_touch_at", "comment": null}, "last_campaign_touch_at": {"type": "timestamp without time zone", "index": 12, "name": "last_campaign_touch_at", "comment": null}, "first_flow_touch_at": {"type": "timestamp without time zone", "index": 13, "name": "first_flow_touch_at", "comment": null}, "last_flow_touch_at": {"type": "timestamp without time zone", "index": 14, "name": "last_flow_touch_at", "comment": null}, "count_total_campaigns": {"type": "numeric", "index": 15, "name": "count_total_campaigns", "comment": null}, "count_total_flows": {"type": "numeric", "index": 16, "name": "count_total_flows", "comment": null}, "address_1": {"type": "text", "index": 17, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 18, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 19, "name": "city", "comment": null}, "country": {"type": "text", "index": 20, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 21, "name": "zip", "comment": null}, "latitude": {"type": "double precision", "index": 22, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 23, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 24, "name": "organization", "comment": null}, "region": {"type": "text", "index": 25, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 26, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 27, "name": "title", "comment": null}, "total_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "total_sum_revenue_refunded_order", "comment": null}, "organic_sum_revenue_refunded_order": {"type": "numeric", "index": 29, "name": "organic_sum_revenue_refunded_order", "comment": null}, "total_sum_revenue_placed_order": {"type": "numeric", "index": 30, "name": "total_sum_revenue_placed_order", "comment": null}, "organic_sum_revenue_placed_order": {"type": "numeric", "index": 31, "name": "organic_sum_revenue_placed_order", "comment": null}, "total_sum_revenue_ordered_product": {"type": "numeric", "index": 32, "name": "total_sum_revenue_ordered_product", "comment": null}, "organic_sum_revenue_ordered_product": {"type": "numeric", "index": 33, "name": "organic_sum_revenue_ordered_product", "comment": null}, "total_sum_revenue_checkout_started": {"type": "numeric", "index": 34, "name": "total_sum_revenue_checkout_started", "comment": null}, "organic_sum_revenue_checkout_started": {"type": "numeric", "index": 35, "name": "organic_sum_revenue_checkout_started", "comment": null}, "total_sum_revenue_cancelled_order": {"type": "numeric", "index": 36, "name": "total_sum_revenue_cancelled_order", "comment": null}, "organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 37, "name": "organic_sum_revenue_cancelled_order", "comment": null}, "total_count_active_on_site": {"type": "numeric", "index": 38, "name": "total_count_active_on_site", "comment": null}, "total_count_viewed_product": {"type": "numeric", "index": 39, "name": "total_count_viewed_product", "comment": null}, "total_count_ordered_product": {"type": "numeric", "index": 40, "name": "total_count_ordered_product", "comment": null}, "total_count_placed_order": {"type": "numeric", "index": 41, "name": "total_count_placed_order", "comment": null}, "total_count_refunded_order": {"type": "numeric", "index": 42, "name": "total_count_refunded_order", "comment": null}, "total_count_cancelled_order": {"type": "numeric", "index": 43, "name": "total_count_cancelled_order", "comment": null}, "total_count_fulfilled_order": {"type": "numeric", "index": 44, "name": "total_count_fulfilled_order", "comment": null}, "total_count_received_email": {"type": "numeric", "index": 45, "name": "total_count_received_email", "comment": null}, "total_count_clicked_email": {"type": "numeric", "index": 46, "name": "total_count_clicked_email", "comment": null}, "total_count_opened_email": {"type": "numeric", "index": 47, "name": "total_count_opened_email", "comment": null}, "total_count_bounced_email": {"type": "numeric", "index": 48, "name": "total_count_bounced_email", "comment": null}, "total_count_marked_email_as_spam": {"type": "numeric", "index": 49, "name": "total_count_marked_email_as_spam", "comment": null}, "total_count_dropped_email": {"type": "numeric", "index": 50, "name": "total_count_dropped_email", "comment": null}, "total_count_subscribed_to_list": {"type": "numeric", "index": 51, "name": "total_count_subscribed_to_list", "comment": null}, "total_count_unsubscribed_to_list": {"type": "numeric", "index": 52, "name": "total_count_unsubscribed_to_list", "comment": null}, "total_count_unsubscribed": {"type": "numeric", "index": 53, "name": "total_count_unsubscribed", "comment": null}, "total_count_updated_email_preferences": {"type": "numeric", "index": 54, "name": "total_count_updated_email_preferences", "comment": null}, "total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 55, "name": "total_count_subscribed_to_back_in_stock", "comment": null}, "total_count_merged_profile": {"type": "numeric", "index": 56, "name": "total_count_merged_profile", "comment": null}, "total_count_received_sms": {"type": "numeric", "index": 57, "name": "total_count_received_sms", "comment": null}, "total_count_clicked_sms": {"type": "numeric", "index": 58, "name": "total_count_clicked_sms", "comment": null}, "total_count_consented_to_receive_sms": {"type": "numeric", "index": 59, "name": "total_count_consented_to_receive_sms", "comment": null}, "total_count_sent_sms": {"type": "numeric", "index": 60, "name": "total_count_sent_sms", "comment": null}, "total_count_unsubscribed_from_sms": {"type": "numeric", "index": 61, "name": "total_count_unsubscribed_from_sms", "comment": null}, "total_count_failed_to_deliver_sms": {"type": "numeric", "index": 62, "name": "total_count_failed_to_deliver_sms", "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.shopify_holistic_reporting.int__klaviyo_person_rollup"}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "int__shopify_customer_rollup", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "source_relation": {"type": "text", "index": 2, "name": "source_relation", "comment": null}, "customer_ids": {"type": "text", "index": 3, "name": "customer_ids", "comment": null}, "phone_numbers": {"type": "text", "index": 4, "name": "phone_numbers", "comment": null}, "full_name": {"type": "text", "index": 5, "name": "full_name", "comment": null}, "first_shopify_account_made_at": {"type": "timestamp without time zone", "index": 6, "name": "first_shopify_account_made_at", "comment": null}, "last_shopify_account_made_at": {"type": "timestamp without time zone", "index": 7, "name": "last_shopify_account_made_at", "comment": null}, "first_order_at": {"type": "timestamp without time zone", "index": 8, "name": "first_order_at", "comment": null}, "last_order_at": {"type": "timestamp without time zone", "index": 9, "name": "last_order_at", "comment": null}, "last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "last_updated_at", "comment": null}, "lifetime_total_spent": {"type": "double precision", "index": 11, "name": "lifetime_total_spent", "comment": null}, "lifetime_total_refunded": {"type": "double precision", "index": 12, "name": "lifetime_total_refunded", "comment": null}, "lifetime_total_amount": {"type": "double precision", "index": 13, "name": "lifetime_total_amount", "comment": null}, "lifetime_count_orders": {"type": "numeric", "index": 14, "name": "lifetime_count_orders", "comment": null}, "average_order_value": {"type": "double precision", "index": 15, "name": "average_order_value", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 16, "name": "has_accepted_marketing", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 17, "name": "is_tax_exempt", "comment": null}, "is_verified_email": {"type": "boolean", "index": 18, "name": "is_verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 19, "name": "default_address_id", "comment": null}, "account_state": {"type": "text", "index": 20, "name": "account_state", "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.shopify_holistic_reporting.int__shopify_customer_rollup"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "shopify_holistic_reporting__customer_enhanced", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"email": {"type": "text", "index": 1, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 2, "name": "full_name", "comment": null}, "shopify_customer_ids": {"type": "text", "index": 3, "name": "shopify_customer_ids", "comment": null}, "klaviyo_person_ids": {"type": "text", "index": 4, "name": "klaviyo_person_ids", "comment": null}, "phone_number": {"type": "text", "index": 5, "name": "phone_number", "comment": null}, "shopify_customer_first_created_at": {"type": "timestamp without time zone", "index": 6, "name": "shopify_customer_first_created_at", "comment": null}, "shopify_customer_last_created_at": {"type": "timestamp without time zone", "index": 7, "name": "shopify_customer_last_created_at", "comment": null}, "klaviyo_person_first_created_at": {"type": "text", "index": 8, "name": "klaviyo_person_first_created_at", "comment": null}, "klaviyo_person_last_created_at": {"type": "text", "index": 9, "name": "klaviyo_person_last_created_at", "comment": null}, "shopify_customer_last_updated_at": {"type": "timestamp without time zone", "index": 10, "name": "shopify_customer_last_updated_at", "comment": null}, "klaviyo_person_last_updated_at": {"type": "text", "index": 11, "name": "klaviyo_person_last_updated_at", "comment": null}, "is_shopify_email_verified": {"type": "boolean", "index": 12, "name": "is_shopify_email_verified", "comment": null}, "shopify_first_order_at": {"type": "timestamp without time zone", "index": 13, "name": "shopify_first_order_at", "comment": null}, "shopify_last_order_at": {"type": "timestamp without time zone", "index": 14, "name": "shopify_last_order_at", "comment": null}, "shopify_lifetime_total_spent": {"type": "double precision", "index": 15, "name": "shopify_lifetime_total_spent", "comment": null}, "shopify_lifetime_total_refunded": {"type": "double precision", "index": 16, "name": "shopify_lifetime_total_refunded", "comment": null}, "shopify_lifetime_total_amount": {"type": "double precision", "index": 17, "name": "shopify_lifetime_total_amount", "comment": null}, "shopify_lifetime_count_orders": {"type": "numeric", "index": 18, "name": "shopify_lifetime_count_orders", "comment": null}, "shopify_average_order_value": {"type": "double precision", "index": 19, "name": "shopify_average_order_value", "comment": null}, "shopify_has_accepted_marketing": {"type": "boolean", "index": 20, "name": "shopify_has_accepted_marketing", "comment": null}, "shopify_is_tax_exempt": {"type": "boolean", "index": 21, "name": "shopify_is_tax_exempt", "comment": null}, "shopify_default_address_id": {"type": "bigint", "index": 22, "name": "shopify_default_address_id", "comment": null}, "shopify_account_state": {"type": "text", "index": 23, "name": "shopify_account_state", "comment": null}, "shopify_source_relation": {"type": "text", "index": 24, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 25, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_first_campaign_touch_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_first_campaign_touch_at", "comment": null}, "klaviyo_last_campaign_touch_at": {"type": "timestamp without time zone", "index": 28, "name": "klaviyo_last_campaign_touch_at", "comment": null}, "klaviyo_first_flow_touch_at": {"type": "timestamp without time zone", "index": 29, "name": "klaviyo_first_flow_touch_at", "comment": null}, "klaviyo_last_flow_touch_at": {"type": "timestamp without time zone", "index": 30, "name": "klaviyo_last_flow_touch_at", "comment": null}, "klaviyo_count_total_campaigns": {"type": "numeric", "index": 31, "name": "klaviyo_count_total_campaigns", "comment": null}, "klaviyo_count_total_flows": {"type": "numeric", "index": 32, "name": "klaviyo_count_total_flows", "comment": null}, "klaviyo_address_1": {"type": "text", "index": 33, "name": "klaviyo_address_1", "comment": null}, "klaviyo_address_2": {"type": "integer", "index": 34, "name": "klaviyo_address_2", "comment": null}, "klaviyo_city": {"type": "text", "index": 35, "name": "klaviyo_city", "comment": null}, "klaviyo_country": {"type": "text", "index": 36, "name": "klaviyo_country", "comment": null}, "klaviyo_zip": {"type": "integer", "index": 37, "name": "klaviyo_zip", "comment": null}, "klaviyo_latitude": {"type": "double precision", "index": 38, "name": "klaviyo_latitude", "comment": null}, "klaviyo_longitude": {"type": "double precision", "index": 39, "name": "klaviyo_longitude", "comment": null}, "klaviyo_organization": {"type": "integer", "index": 40, "name": "klaviyo_organization", "comment": null}, "klaviyo_region": {"type": "text", "index": 41, "name": "klaviyo_region", "comment": null}, "klaviyo_timezone": {"type": "text", "index": 42, "name": "klaviyo_timezone", "comment": null}, "klaviyo_title": {"type": "integer", "index": 43, "name": "klaviyo_title", "comment": null}, "klaviyo_total_sum_revenue_refunded_order": {"type": "numeric", "index": 44, "name": "klaviyo_total_sum_revenue_refunded_order", "comment": null}, "klaviyo_organic_sum_revenue_refunded_order": {"type": "numeric", "index": 45, "name": "klaviyo_organic_sum_revenue_refunded_order", "comment": null}, "klaviyo_total_sum_revenue_placed_order": {"type": "numeric", "index": 46, "name": "klaviyo_total_sum_revenue_placed_order", "comment": null}, "klaviyo_organic_sum_revenue_placed_order": {"type": "numeric", "index": 47, "name": "klaviyo_organic_sum_revenue_placed_order", "comment": null}, "klaviyo_total_sum_revenue_ordered_product": {"type": "numeric", "index": 48, "name": "klaviyo_total_sum_revenue_ordered_product", "comment": null}, "klaviyo_organic_sum_revenue_ordered_product": {"type": "numeric", "index": 49, "name": "klaviyo_organic_sum_revenue_ordered_product", "comment": null}, "klaviyo_total_sum_revenue_checkout_started": {"type": "numeric", "index": 50, "name": "klaviyo_total_sum_revenue_checkout_started", "comment": null}, "klaviyo_organic_sum_revenue_checkout_started": {"type": "numeric", "index": 51, "name": "klaviyo_organic_sum_revenue_checkout_started", "comment": null}, "klaviyo_total_sum_revenue_cancelled_order": {"type": "numeric", "index": 52, "name": "klaviyo_total_sum_revenue_cancelled_order", "comment": null}, "klaviyo_organic_sum_revenue_cancelled_order": {"type": "numeric", "index": 53, "name": "klaviyo_organic_sum_revenue_cancelled_order", "comment": null}, "klaviyo_total_count_active_on_site": {"type": "numeric", "index": 54, "name": "klaviyo_total_count_active_on_site", "comment": null}, "klaviyo_total_count_viewed_product": {"type": "numeric", "index": 55, "name": "klaviyo_total_count_viewed_product", "comment": null}, "klaviyo_total_count_ordered_product": {"type": "numeric", "index": 56, "name": "klaviyo_total_count_ordered_product", "comment": null}, "klaviyo_total_count_placed_order": {"type": "numeric", "index": 57, "name": "klaviyo_total_count_placed_order", "comment": null}, "klaviyo_total_count_refunded_order": {"type": "numeric", "index": 58, "name": "klaviyo_total_count_refunded_order", "comment": null}, "klaviyo_total_count_cancelled_order": {"type": "numeric", "index": 59, "name": "klaviyo_total_count_cancelled_order", "comment": null}, "klaviyo_total_count_fulfilled_order": {"type": "numeric", "index": 60, "name": "klaviyo_total_count_fulfilled_order", "comment": null}, "klaviyo_total_count_received_email": {"type": "numeric", "index": 61, "name": "klaviyo_total_count_received_email", "comment": null}, "klaviyo_total_count_clicked_email": {"type": "numeric", "index": 62, "name": "klaviyo_total_count_clicked_email", "comment": null}, "klaviyo_total_count_opened_email": {"type": "numeric", "index": 63, "name": "klaviyo_total_count_opened_email", "comment": null}, "klaviyo_total_count_bounced_email": {"type": "numeric", "index": 64, "name": "klaviyo_total_count_bounced_email", "comment": null}, "klaviyo_total_count_marked_email_as_spam": {"type": "numeric", "index": 65, "name": "klaviyo_total_count_marked_email_as_spam", "comment": null}, "klaviyo_total_count_dropped_email": {"type": "numeric", "index": 66, "name": "klaviyo_total_count_dropped_email", "comment": null}, "klaviyo_total_count_subscribed_to_list": {"type": "numeric", "index": 67, "name": "klaviyo_total_count_subscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed_to_list": {"type": "numeric", "index": 68, "name": "klaviyo_total_count_unsubscribed_to_list", "comment": null}, "klaviyo_total_count_unsubscribed": {"type": "numeric", "index": 69, "name": "klaviyo_total_count_unsubscribed", "comment": null}, "klaviyo_total_count_updated_email_preferences": {"type": "numeric", "index": 70, "name": "klaviyo_total_count_updated_email_preferences", "comment": null}, "klaviyo_total_count_subscribed_to_back_in_stock": {"type": "numeric", "index": 71, "name": "klaviyo_total_count_subscribed_to_back_in_stock", "comment": null}, "klaviyo_total_count_merged_profile": {"type": "numeric", "index": 72, "name": "klaviyo_total_count_merged_profile", "comment": null}, "klaviyo_total_count_received_sms": {"type": "numeric", "index": 73, "name": "klaviyo_total_count_received_sms", "comment": null}, "klaviyo_total_count_clicked_sms": {"type": "numeric", "index": 74, "name": "klaviyo_total_count_clicked_sms", "comment": null}, "klaviyo_total_count_consented_to_receive_sms": {"type": "numeric", "index": 75, "name": "klaviyo_total_count_consented_to_receive_sms", "comment": null}, "klaviyo_total_count_sent_sms": {"type": "numeric", "index": 76, "name": "klaviyo_total_count_sent_sms", "comment": null}, "klaviyo_total_count_unsubscribed_from_sms": {"type": "numeric", "index": 77, "name": "klaviyo_total_count_unsubscribed_from_sms", "comment": null}, "klaviyo_total_count_failed_to_deliver_sms": {"type": "numeric", "index": 78, "name": "klaviyo_total_count_failed_to_deliver_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 79, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "shopify_holistic_reporting__daily_customer_metrics", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "email": {"type": "text", "index": 2, "name": "email", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "campaign_name": {"type": "text", "index": 5, "name": "campaign_name", "comment": null}, "flow_name": {"type": "text", "index": 6, "name": "flow_name", "comment": null}, "variation_id": {"type": "text", "index": 7, "name": "variation_id", "comment": null}, "campaign_subject_line": {"type": "text", "index": 8, "name": "campaign_subject_line", "comment": null}, "campaign_type": {"type": "text", "index": 9, "name": "campaign_type", "comment": null}, "shopify_total_orders": {"type": "bigint", "index": 10, "name": "shopify_total_orders", "comment": null}, "shopify_total_price": {"type": "double precision", "index": 11, "name": "shopify_total_price", "comment": null}, "shopify_count_line_items": {"type": "numeric", "index": 12, "name": "shopify_count_line_items", "comment": null}, "shopify_total_line_items_price": {"type": "double precision", "index": 13, "name": "shopify_total_line_items_price", "comment": null}, "shopify_total_discounts": {"type": "double precision", "index": 14, "name": "shopify_total_discounts", "comment": null}, "shopify_total_tax": {"type": "bigint", "index": 15, "name": "shopify_total_tax", "comment": null}, "shopify_total_shipping_cost": {"type": "double precision", "index": 16, "name": "shopify_total_shipping_cost", "comment": null}, "shopify_total_refund_subtotal": {"type": "numeric", "index": 17, "name": "shopify_total_refund_subtotal", "comment": null}, "shopify_total_refund_tax": {"type": "numeric", "index": 18, "name": "shopify_total_refund_tax", "comment": null}, "shopify_count_cancelled_orders": {"type": "bigint", "index": 19, "name": "shopify_count_cancelled_orders", "comment": null}, "shopify_count_products": {"type": "numeric", "index": 20, "name": "shopify_count_products", "comment": null}, "shopify_count_product_variants": {"type": "numeric", "index": 21, "name": "shopify_count_product_variants", "comment": null}, "shopify_sum_quantity": {"type": "numeric", "index": 22, "name": "shopify_sum_quantity", "comment": null}, "shopify_total_order_adjustment_amount": {"type": "numeric", "index": 23, "name": "shopify_total_order_adjustment_amount", "comment": null}, "shopify_total_order_adjustment_tax_amount": {"type": "double precision", "index": 24, "name": "shopify_total_order_adjustment_tax_amount", "comment": null}, "shopify_source_relation": {"type": "text", "index": 25, "name": "shopify_source_relation", "comment": null}, "klaviyo_first_event_at": {"type": "timestamp without time zone", "index": 26, "name": "klaviyo_first_event_at", "comment": null}, "klaviyo_last_event_at": {"type": "timestamp without time zone", "index": 27, "name": "klaviyo_last_event_at", "comment": null}, "klaviyo_sum_revenue_refunded_order": {"type": "numeric", "index": 28, "name": "klaviyo_sum_revenue_refunded_order", "comment": null}, "klaviyo_sum_revenue_placed_order": {"type": "numeric", "index": 29, "name": "klaviyo_sum_revenue_placed_order", "comment": null}, "klaviyo_sum_revenue_ordered_product": {"type": "numeric", "index": 30, "name": "klaviyo_sum_revenue_ordered_product", "comment": null}, "klaviyo_sum_revenue_checkout_started": {"type": "numeric", "index": 31, "name": "klaviyo_sum_revenue_checkout_started", "comment": null}, "klaviyo_sum_revenue_cancelled_order": {"type": "numeric", "index": 32, "name": "klaviyo_sum_revenue_cancelled_order", "comment": null}, "klaviyo_count_active_on_site": {"type": "bigint", "index": 33, "name": "klaviyo_count_active_on_site", "comment": null}, "klaviyo_count_viewed_product": {"type": "bigint", "index": 34, "name": "klaviyo_count_viewed_product", "comment": null}, "klaviyo_count_ordered_product": {"type": "bigint", "index": 35, "name": "klaviyo_count_ordered_product", "comment": null}, "klaviyo_count_placed_order": {"type": "bigint", "index": 36, "name": "klaviyo_count_placed_order", "comment": null}, "klaviyo_count_refunded_order": {"type": "bigint", "index": 37, "name": "klaviyo_count_refunded_order", "comment": null}, "klaviyo_count_received_email": {"type": "bigint", "index": 38, "name": "klaviyo_count_received_email", "comment": null}, "klaviyo_count_clicked_email": {"type": "bigint", "index": 39, "name": "klaviyo_count_clicked_email", "comment": null}, "klaviyo_count_opened_email": {"type": "bigint", "index": 40, "name": "klaviyo_count_opened_email", "comment": null}, "klaviyo_count_marked_email_as_spam": {"type": "bigint", "index": 41, "name": "klaviyo_count_marked_email_as_spam", "comment": null}, "klaviyo_count_unsubscribed": {"type": "bigint", "index": 42, "name": "klaviyo_count_unsubscribed", "comment": null}, "klaviyo_count_received_sms": {"type": "bigint", "index": 43, "name": "klaviyo_count_received_sms", "comment": null}, "klaviyo_count_clicked_sms": {"type": "bigint", "index": 44, "name": "klaviyo_count_clicked_sms", "comment": null}, "klaviyo_count_sent_sms": {"type": "bigint", "index": 45, "name": "klaviyo_count_sent_sms", "comment": null}, "klaviyo_count_unsubscribed_from_sms": {"type": "bigint", "index": 46, "name": "klaviyo_count_unsubscribed_from_sms", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 47, "name": "klaviyo_source_relation", "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.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "name": "shopify_holistic_reporting__orders_attribution", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "shipping_cost": {"type": "double precision", "index": 68, "name": "shipping_cost", "comment": null}, "order_adjustment_amount": {"type": "bigint", "index": 69, "name": "order_adjustment_amount", "comment": null}, "order_adjustment_tax_amount": {"type": "double precision", "index": 70, "name": "order_adjustment_tax_amount", "comment": null}, "refund_subtotal": {"type": "numeric", "index": 71, "name": "refund_subtotal", "comment": null}, "refund_total_tax": {"type": "numeric", "index": 72, "name": "refund_total_tax", "comment": null}, "order_adjusted_total": {"type": "double precision", "index": 73, "name": "order_adjusted_total", "comment": null}, "line_item_count": {"type": "bigint", "index": 74, "name": "line_item_count", "comment": null}, "customer_order_seq_number": {"type": "bigint", "index": 75, "name": "customer_order_seq_number", "comment": null}, "new_vs_repeat": {"type": "text", "index": 76, "name": "new_vs_repeat", "comment": null}, "is_attributed": {"type": "boolean", "index": 77, "name": "is_attributed", "comment": null}, "last_touch_campaign_id": {"type": "character varying", "index": 78, "name": "last_touch_campaign_id", "comment": null}, "last_touch_flow_id": {"type": "character varying", "index": 79, "name": "last_touch_flow_id", "comment": null}, "last_touch_variation_id": {"type": "text", "index": 80, "name": "last_touch_variation_id", "comment": null}, "last_touch_campaign_name": {"type": "text", "index": 81, "name": "last_touch_campaign_name", "comment": null}, "last_touch_campaign_subject_line": {"type": "text", "index": 82, "name": "last_touch_campaign_subject_line", "comment": null}, "last_touch_campaign_type": {"type": "text", "index": 83, "name": "last_touch_campaign_type", "comment": null}, "last_touch_flow_name": {"type": "text", "index": 84, "name": "last_touch_flow_name", "comment": null}, "count_interactions_with_campaign": {"type": "bigint", "index": 85, "name": "count_interactions_with_campaign", "comment": null}, "count_interactions_with_flow": {"type": "bigint", "index": 86, "name": "count_interactions_with_flow", "comment": null}, "last_touch_event_id": {"type": "text", "index": 87, "name": "last_touch_event_id", "comment": null}, "last_touch_event_occurred_at": {"type": "timestamp without time zone", "index": 88, "name": "last_touch_event_occurred_at", "comment": null}, "last_touch_event_type": {"type": "text", "index": 89, "name": "last_touch_event_type", "comment": null}, "last_touch_integration_name": {"type": "text", "index": 90, "name": "last_touch_integration_name", "comment": null}, "last_touch_integration_category": {"type": "text", "index": 91, "name": "last_touch_integration_category", "comment": null}, "shopify_source_relation": {"type": "text", "index": 92, "name": "shopify_source_relation", "comment": null}, "klaviyo_source_relation": {"type": "text", "index": 93, "name": "klaviyo_source_relation", "comment": null}, "unique_order_key": {"type": "text", "index": 94, "name": "unique_order_key", "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.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, "model.klaviyo_source.stg_klaviyo__campaign": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_type": {"type": "text", "index": 1, "name": "campaign_type", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "email_template_id": {"type": "text", "index": 3, "name": "email_template_id", "comment": null}, "from_email": {"type": "text", "index": 4, "name": "from_email", "comment": null}, "from_name": {"type": "text", "index": 5, "name": "from_name", "comment": null}, "campaign_id": {"type": "text", "index": 6, "name": "campaign_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 7, "name": "is_segmented", "comment": null}, "campaign_name": {"type": "text", "index": 8, "name": "campaign_name", "comment": null}, "scheduled_to_send_at": {"type": "text", "index": 9, "name": "scheduled_to_send_at", "comment": null}, "sent_at": {"type": "text", "index": 10, "name": "sent_at", "comment": null}, "status": {"type": "text", "index": 11, "name": "status", "comment": null}, "status_id": {"type": "integer", "index": 12, "name": "status_id", "comment": null}, "subject": {"type": "text", "index": 13, "name": "subject", "comment": null}, "updated_at": {"type": "text", "index": 14, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 15, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__campaign"}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__campaign_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "from_name": {"type": "text", "index": 2, "name": "from_name", "comment": null}, "status_id": {"type": "integer", "index": 3, "name": "status_id", "comment": null}, "is_segmented": {"type": "boolean", "index": 4, "name": "is_segmented", "comment": null}, "campaign_type": {"type": "text", "index": 5, "name": "campaign_type", "comment": null}, "status_label": {"type": "text", "index": 6, "name": "status_label", "comment": null}, "from_email": {"type": "text", "index": 7, "name": "from_email", "comment": null}, "subject": {"type": "text", "index": 8, "name": "subject", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "status": {"type": "text", "index": 10, "name": "status", "comment": null}, "created": {"type": "text", "index": 11, "name": "created", "comment": null}, "updated": {"type": "text", "index": 12, "name": "updated", "comment": null}, "send_time": {"type": "text", "index": 13, "name": "send_time", "comment": null}, "sent_at": {"type": "text", "index": 14, "name": "sent_at", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 15, "name": "_fivetran_deleted", "comment": null}, "email_template_id": {"type": "text", "index": 16, "name": "email_template_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 17, "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.klaviyo_source.stg_klaviyo__campaign_tmp"}, "model.klaviyo_source.stg_klaviyo__event": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variation_id": {"type": "text", "index": 1, "name": "variation_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 2, "name": "campaign_id", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 3, "name": "occurred_at", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "event_id": {"type": "text", "index": 6, "name": "event_id", "comment": null}, "metric_id": {"type": "text", "index": 7, "name": "metric_id", "comment": null}, "person_id": {"type": "text", "index": 8, "name": "person_id", "comment": null}, "type": {"type": "text", "index": 9, "name": "type", "comment": null}, "uuid": {"type": "text", "index": 10, "name": "uuid", "comment": null}, "numeric_value": {"type": "integer", "index": 11, "name": "numeric_value", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 12, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 13, "name": "source_relation", "comment": null}, "occurred_on": {"type": "date", "index": 14, "name": "occurred_on", "comment": null}, "unique_event_id": {"type": "text", "index": 15, "name": "unique_event_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.klaviyo_source.stg_klaviyo__event"}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__event_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "person_id": {"type": "text", "index": 2, "name": "person_id", "comment": null}, "campaign_id": {"type": "character varying", "index": 3, "name": "campaign_id", "comment": null}, "flow_id": {"type": "character varying", "index": 4, "name": "flow_id", "comment": null}, "flow_message_id": {"type": "integer", "index": 5, "name": "flow_message_id", "comment": null}, "uuid": {"type": "text", "index": 6, "name": "uuid", "comment": null}, "datetime": {"type": "text", "index": 7, "name": "datetime", "comment": null}, "timestamp": {"type": "text", "index": 8, "name": "timestamp", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 9, "name": "_fivetran_deleted", "comment": null}, "metric_id": {"type": "text", "index": 10, "name": "metric_id", "comment": null}, "type": {"type": "text", "index": 11, "name": "type", "comment": null}, "_variation": {"type": "text", "index": 12, "name": "_variation", "comment": null}, "property_value": {"type": "integer", "index": 13, "name": "property_value", "comment": null}, "property_source_name": {"type": "integer", "index": 14, "name": "property_source_name", "comment": null}, "property_extra": {"type": "integer", "index": 15, "name": "property_extra", "comment": null}, "property_shipping_rate": {"type": "integer", "index": 16, "name": "property_shipping_rate", "comment": null}, "property_items": {"type": "integer", "index": 17, "name": "property_items", "comment": null}, "property_tags": {"type": "integer", "index": 18, "name": "property_tags", "comment": null}, "property_item_count": {"type": "integer", "index": 19, "name": "property_item_count", "comment": null}, "property_collections": {"type": "integer", "index": 20, "name": "property_collections", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "name": "_fivetran_synced", "comment": null}, "property_currency_code": {"type": "integer", "index": 22, "name": "property_currency_code", "comment": null}, "property_product_id": {"type": "integer", "index": 23, "name": "property_product_id", "comment": null}, "property_quantity": {"type": "integer", "index": 24, "name": "property_quantity", "comment": null}, "property_name": {"type": "integer", "index": 25, "name": "property_name", "comment": null}, "property_variant_option_title": {"type": "integer", "index": 26, "name": "property_variant_option_title", "comment": null}, "property_sku": {"type": "integer", "index": 27, "name": "property_sku", "comment": null}, "property_variant_name": {"type": "integer", "index": 28, "name": "property_variant_name", "comment": null}, "property_vendor": {"type": "integer", "index": 29, "name": "property_vendor", "comment": null}, "property_event_id": {"type": "text", "index": 30, "name": "property_event_id", "comment": null}, "property_total_discounts": {"type": "integer", "index": 31, "name": "property_total_discounts", "comment": null}, "property_attribution": {"type": "integer", "index": 32, "name": "property_attribution", "comment": null}, "property_discount_codes": {"type": "integer", "index": 33, "name": "property_discount_codes", "comment": null}, "property_fulfillment_hours": {"type": "integer", "index": 34, "name": "property_fulfillment_hours", "comment": null}, "property_fulfillment_status": {"type": "integer", "index": 35, "name": "property_fulfillment_status", "comment": null}, "property_subject": {"type": "text", "index": 36, "name": "property_subject", "comment": null}, "property_title": {"type": "integer", "index": 37, "name": "property_title", "comment": null}, "property_message_interaction": {"type": "integer", "index": 38, "name": "property_message_interaction", "comment": null}, "property_url": {"type": "integer", "index": 39, "name": "property_url", "comment": null}, "property_shipment_type": {"type": "integer", "index": 40, "name": "property_shipment_type", "comment": null}, "property_courier_name": {"type": "integer", "index": 41, "name": "property_courier_name", "comment": null}, "property_current_status": {"type": "integer", "index": 42, "name": "property_current_status", "comment": null}, "property_tracking_ship_date": {"type": "integer", "index": 43, "name": "property_tracking_ship_date", "comment": null}, "property_tracking_postal_code": {"type": "integer", "index": 44, "name": "property_tracking_postal_code", "comment": null}, "property_shipment_package_count": {"type": "integer", "index": 45, "name": "property_shipment_package_count", "comment": null}, "property_campaign_name": {"type": "text", "index": 46, "name": "property_campaign_name", "comment": null}, "property_cohort_message_send_cohort": {"type": "text", "index": 47, "name": "property_cohort_message_send_cohort", "comment": null}, "property_email_domain": {"type": "text", "index": 48, "name": "property_email_domain", "comment": null}, "property_bounce_type": {"type": "integer", "index": 49, "name": "property_bounce_type", "comment": null}, "property_client_type": {"type": "integer", "index": 50, "name": "property_client_type", "comment": null}, "property_client_os": {"type": "integer", "index": 51, "name": "property_client_os", "comment": null}, "property_client_name": {"type": "integer", "index": 52, "name": "property_client_name", "comment": null}, "property_client_os_family": {"type": "integer", "index": 53, "name": "property_client_os_family", "comment": null}, "property_client_canonical": {"type": "integer", "index": 54, "name": "property_client_canonical", "comment": null}, "property_page": {"type": "integer", "index": 55, "name": "property_page", "comment": null}, "property_is_session_activity": {"type": "integer", "index": 56, "name": "property_is_session_activity", "comment": null}, "property_os": {"type": "integer", "index": 57, "name": "property_os", "comment": null}, "property_session_end": {"type": "integer", "index": 58, "name": "property_session_end", "comment": null}, "property_browser": {"type": "integer", "index": 59, "name": "property_browser", "comment": null}, "property_list": {"type": "integer", "index": 60, "name": "property_list", "comment": null}, "property_compare_at_price": {"type": "integer", "index": 61, "name": "property_compare_at_price", "comment": null}, "property_price": {"type": "integer", "index": 62, "name": "property_price", "comment": null}, "property_image_url": {"type": "integer", "index": 63, "name": "property_image_url", "comment": null}, "property_brand": {"type": "integer", "index": 64, "name": "property_brand", "comment": null}, "property_categories": {"type": "integer", "index": 65, "name": "property_categories", "comment": null}, "property_variant_option_size": {"type": "integer", "index": 66, "name": "property_variant_option_size", "comment": null}, "property_attribute_workout": {"type": "integer", "index": 67, "name": "property_attribute_workout", "comment": null}, "property_attribute_age": {"type": "integer", "index": 68, "name": "property_attribute_age", "comment": null}, "property_attribute_fitness_goal": {"type": "integer", "index": 69, "name": "property_attribute_fitness_goal", "comment": null}, "property_attribute_breakfast": {"type": "integer", "index": 70, "name": "property_attribute_breakfast", "comment": null}, "property_variant_option_type": {"type": "integer", "index": 71, "name": "property_variant_option_type", "comment": null}, "property_cohort_variation_send_cohort": {"type": "text", "index": 72, "name": "property_cohort_variation_send_cohort", "comment": null}, "property_method": {"type": "integer", "index": 73, "name": "property_method", "comment": null}, "property_to_number": {"type": "integer", "index": 74, "name": "property_to_number", "comment": null}, "property_message_type": {"type": "integer", "index": 75, "name": "property_message_type", "comment": null}, "property_from_number": {"type": "integer", "index": 76, "name": "property_from_number", "comment": null}, "property_message_format": {"type": "integer", "index": 77, "name": "property_message_format", "comment": null}, "property_message_name": {"type": "integer", "index": 78, "name": "property_message_name", "comment": null}, "property_carrier_delivery_status": {"type": "integer", "index": 79, "name": "property_carrier_delivery_status", "comment": null}, "property_failure_type": {"type": "integer", "index": 80, "name": "property_failure_type", "comment": null}, "property_failure_source": {"type": "integer", "index": 81, "name": "property_failure_source", "comment": null}, "property_message_body": {"type": "integer", "index": 82, "name": "property_message_body", "comment": null}, "property_email": {"type": "integer", "index": 83, "name": "property_email", "comment": null}, "property_attribute_kit": {"type": "integer", "index": 84, "name": "property_attribute_kit", "comment": null}, "property_vendor_error_code": {"type": "integer", "index": 85, "name": "property_vendor_error_code", "comment": null}, "property_ordr_details": {"type": "integer", "index": 86, "name": "property_ordr_details", "comment": null}, "property_date_to_send_gift": {"type": "integer", "index": 87, "name": "property_date_to_send_gift", "comment": null}, "property_recipient_name": {"type": "integer", "index": 88, "name": "property_recipient_name", "comment": null}, "property_attribute_facebook_order_retailer_id": {"type": "integer", "index": 89, "name": "property_attribute_facebook_order_retailer_id", "comment": null}, "property_sender_s_name": {"type": "integer", "index": 90, "name": "property_sender_s_name", "comment": null}, "property_attribute_kitid": {"type": "integer", "index": 91, "name": "property_attribute_kitid", "comment": null}, "property_conversation_id": {"type": "integer", "index": 92, "name": "property_conversation_id", "comment": null}, "property_conversation_link": {"type": "integer", "index": 93, "name": "property_conversation_link", "comment": null}, "property_conversation_channel": {"type": "integer", "index": 94, "name": "property_conversation_channel", "comment": null}, "property_rating": {"type": "integer", "index": 95, "name": "property_rating", "comment": null}, "property_score": {"type": "integer", "index": 96, "name": "property_score", "comment": null}, "property_from_phone_region": {"type": "integer", "index": 97, "name": "property_from_phone_region", "comment": null}, "property_shipment_carrier": {"type": "integer", "index": 98, "name": "property_shipment_carrier", "comment": null}, "property_shipment_status": {"type": "integer", "index": 99, "name": "property_shipment_status", "comment": null}, "property_to_phone_region": {"type": "integer", "index": 100, "name": "property_to_phone_region", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, "model.klaviyo_source.stg_klaviyo__flow": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__flow", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "flow_id": {"type": "text", "index": 2, "name": "flow_id", "comment": null}, "flow_name": {"type": "text", "index": 3, "name": "flow_name", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "flow_trigger": {"type": "character varying", "index": 5, "name": "flow_trigger", "comment": null}, "updated_at": {"type": "text", "index": 6, "name": "updated_at", "comment": null}, "person_filter": {"type": "text", "index": 7, "name": "person_filter", "comment": null}, "source_relation": {"type": "text", "index": 8, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__flow"}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__flow_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "status": {"type": "text", "index": 3, "name": "status", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "customer_filter": {"type": "text", "index": 6, "name": "customer_filter", "comment": null}, "trigger": {"type": "character varying", "index": 7, "name": "trigger", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 8, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "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.klaviyo_source.stg_klaviyo__flow_tmp"}, "model.klaviyo_source.stg_klaviyo__integration": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__integration", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"category": {"type": "text", "index": 1, "name": "category", "comment": null}, "integration_id": {"type": "text", "index": 2, "name": "integration_id", "comment": null}, "integration_name": {"type": "text", "index": 3, "name": "integration_name", "comment": null}, "source_relation": {"type": "text", "index": 4, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__integration"}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__integration_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "category": {"type": "text", "index": 2, "name": "category", "comment": null}, "name": {"type": "text", "index": 3, "name": "name", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "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.klaviyo_source.stg_klaviyo__integration_tmp"}, "model.klaviyo_source.stg_klaviyo__metric": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__metric", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"created_at": {"type": "text", "index": 1, "name": "created_at", "comment": null}, "metric_id": {"type": "text", "index": 2, "name": "metric_id", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "metric_name": {"type": "text", "index": 4, "name": "metric_name", "comment": null}, "updated_at": {"type": "text", "index": 5, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 6, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__metric"}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__metric_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "name": {"type": "text", "index": 2, "name": "name", "comment": null}, "integration_id": {"type": "text", "index": 3, "name": "integration_id", "comment": null}, "created": {"type": "text", "index": 4, "name": "created", "comment": null}, "updated": {"type": "text", "index": 5, "name": "updated", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 6, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.klaviyo_source.stg_klaviyo__metric_tmp"}, "model.klaviyo_source.stg_klaviyo__person": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__person", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"person_id": {"type": "text", "index": 1, "name": "person_id", "comment": null}, "address_1": {"type": "text", "index": 2, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 3, "name": "address_2", "comment": null}, "city": {"type": "text", "index": 4, "name": "city", "comment": null}, "country": {"type": "text", "index": 5, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 6, "name": "zip", "comment": null}, "created_at": {"type": "text", "index": 7, "name": "created_at", "comment": null}, "email": {"type": "text", "index": 8, "name": "email", "comment": null}, "full_name": {"type": "text", "index": 9, "name": "full_name", "comment": null}, "latitude": {"type": "double precision", "index": 10, "name": "latitude", "comment": null}, "longitude": {"type": "double precision", "index": 11, "name": "longitude", "comment": null}, "organization": {"type": "integer", "index": 12, "name": "organization", "comment": null}, "phone_number": {"type": "character varying", "index": 13, "name": "phone_number", "comment": null}, "region": {"type": "text", "index": 14, "name": "region", "comment": null}, "timezone": {"type": "text", "index": 15, "name": "timezone", "comment": null}, "title": {"type": "integer", "index": 16, "name": "title", "comment": null}, "updated_at": {"type": "text", "index": 17, "name": "updated_at", "comment": null}, "source_relation": {"type": "text", "index": 18, "name": "source_relation", "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.klaviyo_source.stg_klaviyo__person"}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "name": "stg_klaviyo__person_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "text", "index": 1, "name": "id", "comment": null}, "updated": {"type": "text", "index": 2, "name": "updated", "comment": null}, "created": {"type": "text", "index": 3, "name": "created", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 4, "name": "_fivetran_deleted", "comment": null}, "first_name": {"type": "text", "index": 5, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 6, "name": "last_name", "comment": null}, "address_1": {"type": "text", "index": 7, "name": "address_1", "comment": null}, "address_2": {"type": "integer", "index": 8, "name": "address_2", "comment": null}, "title": {"type": "integer", "index": 9, "name": "title", "comment": null}, "timezone": {"type": "text", "index": 10, "name": "timezone", "comment": null}, "organization": {"type": "integer", "index": 11, "name": "organization", "comment": null}, "region": {"type": "text", "index": 12, "name": "region", "comment": null}, "longitude": {"type": "double precision", "index": 13, "name": "longitude", "comment": null}, "latitude": {"type": "double precision", "index": 14, "name": "latitude", "comment": null}, "phone_number": {"type": "character varying", "index": 15, "name": "phone_number", "comment": null}, "country": {"type": "text", "index": 16, "name": "country", "comment": null}, "zip": {"type": "integer", "index": 17, "name": "zip", "comment": null}, "city": {"type": "text", "index": 18, "name": "city", "comment": null}, "email": {"type": "text", "index": 19, "name": "email", "comment": null}, "custom_object": {"type": "text", "index": 20, "name": "custom_object", "comment": null}, "custom_email": {"type": "text", "index": 21, "name": "custom_email", "comment": null}, "custom_accepts_marketing": {"type": "boolean", "index": 22, "name": "custom_accepts_marketing", "comment": null}, "custom_shopify_tags": {"type": "text", "index": 23, "name": "custom_shopify_tags", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 24, "name": "_fivetran_synced", "comment": null}, "custom_consent_form_id": {"type": "text", "index": 25, "name": "custom_consent_form_id", "comment": null}, "custom_source": {"type": "text", "index": 26, "name": "custom_source", "comment": null}, "custom_consent_method": {"type": "text", "index": 27, "name": "custom_consent_method", "comment": null}, "custom_consent": {"type": "integer", "index": 28, "name": "custom_consent", "comment": null}, "custom_gift_giver_name": {"type": "integer", "index": 29, "name": "custom_gift_giver_name", "comment": null}, "custom_state": {"type": "integer", "index": 30, "name": "custom_state", "comment": null}, "custom_flow": {"type": "integer", "index": 31, "name": "custom_flow", "comment": null}, "custom_gift_recipient_name": {"type": "integer", "index": 32, "name": "custom_gift_recipient_name", "comment": null}, "custom_last_sign_in": {"type": "integer", "index": 33, "name": "custom_last_sign_in", "comment": null}, "custom_consent_form_version": {"type": "integer", "index": 34, "name": "custom_consent_form_version", "comment": null}, "custom_consent_timestamp": {"type": "integer", "index": 35, "name": "custom_consent_timestamp", "comment": null}, "custom_mail_chimp_rating": {"type": "integer", "index": 36, "name": "custom_mail_chimp_rating", "comment": null}, "custom_gift_recipient_email": {"type": "integer", "index": 37, "name": "custom_gift_recipient_email", "comment": null}, "custom_gift_options": {"type": "integer", "index": 38, "name": "custom_gift_options", "comment": null}, "custom_address": {"type": "integer", "index": 39, "name": "custom_address", "comment": null}, "custom_subscription_expiration": {"type": "integer", "index": 40, "name": "custom_subscription_expiration", "comment": null}, "custom_city": {"type": "integer", "index": 41, "name": "custom_city", "comment": null}, "custom_address_line_2": {"type": "integer", "index": 42, "name": "custom_address_line_2", "comment": null}, "custom_zipcode": {"type": "integer", "index": 43, "name": "custom_zipcode", "comment": null}, "custom_expected_date_of_next_order": {"type": "text", "index": 44, "name": "custom_expected_date_of_next_order", "comment": null}, "custom_sms_attentive_signup": {"type": "integer", "index": 45, "name": "custom_sms_attentive_signup", "comment": null}, "custom_phone": {"type": "integer", "index": 46, "name": "custom_phone", "comment": null}, "custom_afterpay_order": {"type": "integer", "index": 47, "name": "custom_afterpay_order", "comment": null}, "custom_phone_number_region": {"type": "text", "index": 48, "name": "custom_phone_number_region", "comment": null}, "custom_name": {"type": "integer", "index": 49, "name": "custom_name", "comment": null}, "custom_referrer_name": {"type": "integer", "index": 50, "name": "custom_referrer_name", "comment": null}, "custom_referrer_email": {"type": "integer", "index": 51, "name": "custom_referrer_email", "comment": null}, "custom_birthday": {"type": "integer", "index": 52, "name": "custom_birthday", "comment": null}, "custom_first_purchase_date_": {"type": "date", "index": 53, "name": "custom_first_purchase_date_", "comment": null}, "custom_unengaged": {"type": "integer", "index": 54, "name": "custom_unengaged", "comment": null}, "custom_landing_page_tag": {"type": "integer", "index": 55, "name": "custom_landing_page_tag", "comment": null}, "custom_fitness_goal": {"type": "integer", "index": 56, "name": "custom_fitness_goal", "comment": null}, "custom_age": {"type": "integer", "index": 57, "name": "custom_age", "comment": null}, "custom_workout": {"type": "integer", "index": 58, "name": "custom_workout", "comment": null}, "custom_quiz": {"type": "integer", "index": 59, "name": "custom_quiz", "comment": null}, "custom_breakfast": {"type": "integer", "index": 60, "name": "custom_breakfast", "comment": null}, "custom_quiz_data": {"type": "integer", "index": 61, "name": "custom_quiz_data", "comment": null}, "custom_raf_subscribe": {"type": "integer", "index": 62, "name": "custom_raf_subscribe", "comment": null}, "custom_suppress": {"type": "integer", "index": 63, "name": "custom_suppress", "comment": null}, "custom_sms_consent": {"type": "integer", "index": 64, "name": "custom_sms_consent", "comment": null}, "custom_gift_option_dreambelt": {"type": "integer", "index": 65, "name": "custom_gift_option_dreambelt", "comment": null}, "custom_gift_option_starter": {"type": "integer", "index": 66, "name": "custom_gift_option_starter", "comment": null}, "custom_gift_option_machine": {"type": "integer", "index": 67, "name": "custom_gift_option_machine", "comment": null}, "custom_landingpage_tag": {"type": "integer", "index": 68, "name": "custom_landingpage_tag", "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.klaviyo_source.stg_klaviyo__person_tmp"}, "model.shopify_source.stg_shopify__customer": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__customer", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "has_accepted_marketing": {"type": "boolean", "index": 2, "name": "has_accepted_marketing", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "default_address_id": {"type": "bigint", "index": 4, "name": "default_address_id", "comment": null}, "email": {"type": "text", "index": 5, "name": "email", "comment": null}, "first_name": {"type": "text", "index": 6, "name": "first_name", "comment": null}, "customer_id": {"type": "bigint", "index": 7, "name": "customer_id", "comment": null}, "last_name": {"type": "text", "index": 8, "name": "last_name", "comment": null}, "orders_count": {"type": "integer", "index": 9, "name": "orders_count", "comment": null}, "phone": {"type": "integer", "index": 10, "name": "phone", "comment": null}, "account_state": {"type": "text", "index": 11, "name": "account_state", "comment": null}, "is_tax_exempt": {"type": "boolean", "index": 12, "name": "is_tax_exempt", "comment": null}, "total_spent": {"type": "double precision", "index": 13, "name": "total_spent", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 14, "name": "updated_timestamp", "comment": null}, "is_verified_email": {"type": "boolean", "index": 15, "name": "is_verified_email", "comment": null}, "source_relation": {"type": "text", "index": 16, "name": "source_relation", "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.shopify_source.stg_shopify__customer"}, "model.shopify_source.stg_shopify__customer_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__customer_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "first_name": {"type": "text", "index": 2, "name": "first_name", "comment": null}, "last_name": {"type": "text", "index": 3, "name": "last_name", "comment": null}, "email": {"type": "text", "index": 4, "name": "email", "comment": null}, "phone": {"type": "integer", "index": 5, "name": "phone", "comment": null}, "state": {"type": "text", "index": 6, "name": "state", "comment": null}, "orders_count": {"type": "integer", "index": 7, "name": "orders_count", "comment": null}, "total_spent": {"type": "double precision", "index": 8, "name": "total_spent", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "accepts_marketing": {"type": "boolean", "index": 11, "name": "accepts_marketing", "comment": null}, "tax_exempt": {"type": "boolean", "index": 12, "name": "tax_exempt", "comment": null}, "verified_email": {"type": "boolean", "index": 13, "name": "verified_email", "comment": null}, "default_address_id": {"type": "bigint", "index": 14, "name": "default_address_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 15, "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.shopify_source.stg_shopify__customer_tmp"}, "model.shopify_source.stg_shopify__order": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "processed_timestamp": {"type": "timestamp without time zone", "index": 2, "name": "processed_timestamp", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "updated_timestamp", "comment": null}, "user_id": {"type": "bigint", "index": 4, "name": "user_id", "comment": null}, "total_discounts": {"type": "double precision", "index": 5, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 6, "name": "total_line_items_price", "comment": null}, "total_price": {"type": "double precision", "index": 7, "name": "total_price", "comment": null}, "total_tax": {"type": "integer", "index": 8, "name": "total_tax", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "subtotal_price": {"type": "double precision", "index": 10, "name": "subtotal_price", "comment": null}, "has_taxes_included": {"type": "boolean", "index": 11, "name": "has_taxes_included", "comment": null}, "total_weight": {"type": "integer", "index": 12, "name": "total_weight", "comment": null}, "landing_site_base_url": {"type": "text", "index": 13, "name": "landing_site_base_url", "comment": null}, "location_id": {"type": "bigint", "index": 14, "name": "location_id", "comment": null}, "name": {"type": "text", "index": 15, "name": "name", "comment": null}, "note": {"type": "text", "index": 16, "name": "note", "comment": null}, "number": {"type": "integer", "index": 17, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 18, "name": "order_number", "comment": null}, "cancel_reason": {"type": "integer", "index": 19, "name": "cancel_reason", "comment": null}, "cancelled_timestamp": {"type": "timestamp without time zone", "index": 20, "name": "cancelled_timestamp", "comment": null}, "cart_token": {"type": "text", "index": 21, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 22, "name": "checkout_token", "comment": null}, "closed_timestamp": {"type": "text", "index": 23, "name": "closed_timestamp", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 24, "name": "created_timestamp", "comment": null}, "currency": {"type": "text", "index": 25, "name": "currency", "comment": null}, "customer_id": {"type": "bigint", "index": 26, "name": "customer_id", "comment": null}, "email": {"type": "text", "index": 27, "name": "email", "comment": null}, "financial_status": {"type": "text", "index": 28, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 29, "name": "fulfillment_status", "comment": null}, "processing_method": {"type": "text", "index": 30, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 31, "name": "referring_site", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_company": {"type": "text", "index": 35, "name": "billing_address_company", "comment": null}, "billing_address_country": {"type": "text", "index": 36, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 37, "name": "billing_address_country_code", "comment": null}, "billing_address_first_name": {"type": "text", "index": 38, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 39, "name": "billing_address_last_name", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 42, "name": "billing_address_name", "comment": null}, "billing_address_phone": {"type": "text", "index": 43, "name": "billing_address_phone", "comment": null}, "billing_address_province": {"type": "text", "index": 44, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 45, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 46, "name": "billing_address_zip", "comment": null}, "browser_ip": {"type": "text", "index": 47, "name": "browser_ip", "comment": null}, "has_buyer_accepted_marketing": {"type": "boolean", "index": 48, "name": "has_buyer_accepted_marketing", "comment": null}, "total_shipping_price_set": {"type": "text", "index": 49, "name": "total_shipping_price_set", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 50, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 51, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 52, "name": "shipping_address_city", "comment": null}, "shipping_address_company": {"type": "text", "index": 53, "name": "shipping_address_company", "comment": null}, "shipping_address_country": {"type": "text", "index": 54, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 55, "name": "shipping_address_country_code", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 56, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 57, "name": "shipping_address_last_name", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 58, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 59, "name": "shipping_address_longitude", "comment": null}, "shipping_address_name": {"type": "text", "index": 60, "name": "shipping_address_name", "comment": null}, "shipping_address_phone": {"type": "text", "index": 61, "name": "shipping_address_phone", "comment": null}, "shipping_address_province": {"type": "text", "index": 62, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 63, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 64, "name": "shipping_address_zip", "comment": null}, "is_test_order": {"type": "boolean", "index": 65, "name": "is_test_order", "comment": null}, "token": {"type": "text", "index": 66, "name": "token", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 67, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 68, "name": "source_relation", "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.shopify_source.stg_shopify__order"}, "model.shopify_source.stg_shopify__order_adjustment": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_adjustment", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_adjustment_id": {"type": "bigint", "index": 1, "name": "order_adjustment_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 8, "name": "_fivetran_synced", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__order_adjustment"}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_adjustment_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "integer", "index": 4, "name": "amount", "comment": null}, "tax_amount": {"type": "double precision", "index": 5, "name": "tax_amount", "comment": null}, "kind": {"type": "text", "index": 6, "name": "kind", "comment": null}, "reason": {"type": "text", "index": 7, "name": "reason", "comment": null}, "amount_set": {"type": "integer", "index": 8, "name": "amount_set", "comment": null}, "tax_amount_set": {"type": "integer", "index": 9, "name": "tax_amount_set", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 10, "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.shopify_source.stg_shopify__order_adjustment_tmp"}, "model.shopify_source.stg_shopify__order_line": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_line", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 2, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 3, "name": "fulfillment_service", "comment": null}, "fulfillment_status": {"type": "text", "index": 4, "name": "fulfillment_status", "comment": null}, "is_gift_card": {"type": "boolean", "index": 5, "name": "is_gift_card", "comment": null}, "grams": {"type": "integer", "index": 6, "name": "grams", "comment": null}, "order_line_id": {"type": "bigint", "index": 7, "name": "order_line_id", "comment": null}, "index": {"type": "integer", "index": 8, "name": "index", "comment": null}, "name": {"type": "text", "index": 9, "name": "name", "comment": null}, "order_id": {"type": "bigint", "index": 10, "name": "order_id", "comment": null}, "pre_tax_price": {"type": "integer", "index": 11, "name": "pre_tax_price", "comment": null}, "price": {"type": "double precision", "index": 12, "name": "price", "comment": null}, "product_id": {"type": "bigint", "index": 13, "name": "product_id", "comment": null}, "property_charge_interval_frequency": {"type": "numeric(28,6)", "index": 14, "name": "property_charge_interval_frequency", "comment": null}, "property_for_shipping_jan_3_rd_2020": {"type": "text", "index": 15, "name": "property_for_shipping_jan_3_rd_2020", "comment": null}, "property_shipping_interval_frequency": {"type": "numeric(28,6)", "index": 16, "name": "property_shipping_interval_frequency", "comment": null}, "property_shipping_interval_unit_type": {"type": "text", "index": 17, "name": "property_shipping_interval_unit_type", "comment": null}, "property_subscription_id": {"type": "numeric(28,6)", "index": 18, "name": "property_subscription_id", "comment": null}, "quantity": {"type": "integer", "index": 19, "name": "quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 20, "name": "is_requiring_shipping", "comment": null}, "sku": {"type": "text", "index": 21, "name": "sku", "comment": null}, "is_taxable": {"type": "boolean", "index": 22, "name": "is_taxable", "comment": null}, "title": {"type": "text", "index": 23, "name": "title", "comment": null}, "total_discount": {"type": "integer", "index": 24, "name": "total_discount", "comment": null}, "variant_id": {"type": "bigint", "index": 25, "name": "variant_id", "comment": null}, "vendor": {"type": "text", "index": 26, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 27, "name": "source_relation", "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.shopify_source.stg_shopify__order_line"}, "model.shopify_source.stg_shopify__order_line_refund": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_line_refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "order_line_refund_id": {"type": "bigint", "index": 2, "name": "order_line_refund_id", "comment": null}, "location_id": {"type": "bigint", "index": 3, "name": "location_id", "comment": null}, "order_line_id": {"type": "bigint", "index": 4, "name": "order_line_id", "comment": null}, "subtotal": {"type": "numeric(28,6)", "index": 5, "name": "subtotal", "comment": null}, "total_tax": {"type": "numeric(28,6)", "index": 6, "name": "total_tax", "comment": null}, "quantity": {"type": "integer", "index": 7, "name": "quantity", "comment": null}, "refund_id": {"type": "bigint", "index": 8, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 9, "name": "restock_type", "comment": null}, "source_relation": {"type": "text", "index": 10, "name": "source_relation", "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.shopify_source.stg_shopify__order_line_refund"}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_line_refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "location_id": {"type": "bigint", "index": 2, "name": "location_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "restock_type": {"type": "integer", "index": 4, "name": "restock_type", "comment": null}, "quantity": {"type": "integer", "index": 5, "name": "quantity", "comment": null}, "order_line_id": {"type": "bigint", "index": 6, "name": "order_line_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "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.shopify_source.stg_shopify__order_line_refund_tmp"}, "model.shopify_source.stg_shopify__order_line_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_line_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"order_id": {"type": "bigint", "index": 1, "name": "order_id", "comment": null}, "id": {"type": "bigint", "index": 2, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 3, "name": "product_id", "comment": null}, "variant_id": {"type": "bigint", "index": 4, "name": "variant_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "title": {"type": "text", "index": 6, "name": "title", "comment": null}, "vendor": {"type": "text", "index": 7, "name": "vendor", "comment": null}, "price": {"type": "double precision", "index": 8, "name": "price", "comment": null}, "quantity": {"type": "integer", "index": 9, "name": "quantity", "comment": null}, "grams": {"type": "integer", "index": 10, "name": "grams", "comment": null}, "sku": {"type": "text", "index": 11, "name": "sku", "comment": null}, "fulfillable_quantity": {"type": "integer", "index": 12, "name": "fulfillable_quantity", "comment": null}, "fulfillment_service": {"type": "text", "index": 13, "name": "fulfillment_service", "comment": null}, "gift_card": {"type": "boolean", "index": 14, "name": "gift_card", "comment": null}, "requires_shipping": {"type": "boolean", "index": 15, "name": "requires_shipping", "comment": null}, "taxable": {"type": "boolean", "index": 16, "name": "taxable", "comment": null}, "index": {"type": "integer", "index": 17, "name": "index", "comment": null}, "total_discount": {"type": "integer", "index": 18, "name": "total_discount", "comment": null}, "pre_tax_price": {"type": "integer", "index": 19, "name": "pre_tax_price", "comment": null}, "fulfillment_status": {"type": "text", "index": 20, "name": "fulfillment_status", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 21, "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.shopify_source.stg_shopify__order_line_tmp"}, "model.shopify_source.stg_shopify__order_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__order_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "note": {"type": "text", "index": 2, "name": "note", "comment": null}, "email": {"type": "text", "index": 3, "name": "email", "comment": null}, "taxes_included": {"type": "boolean", "index": 4, "name": "taxes_included", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "subtotal_price": {"type": "double precision", "index": 6, "name": "subtotal_price", "comment": null}, "total_tax": {"type": "integer", "index": 7, "name": "total_tax", "comment": null}, "total_price": {"type": "double precision", "index": 8, "name": "total_price", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 10, "name": "updated_at", "comment": null}, "name": {"type": "text", "index": 11, "name": "name", "comment": null}, "shipping_address_name": {"type": "text", "index": 12, "name": "shipping_address_name", "comment": null}, "shipping_address_first_name": {"type": "text", "index": 13, "name": "shipping_address_first_name", "comment": null}, "shipping_address_last_name": {"type": "text", "index": 14, "name": "shipping_address_last_name", "comment": null}, "shipping_address_company": {"type": "text", "index": 15, "name": "shipping_address_company", "comment": null}, "shipping_address_phone": {"type": "text", "index": 16, "name": "shipping_address_phone", "comment": null}, "shipping_address_address_1": {"type": "text", "index": 17, "name": "shipping_address_address_1", "comment": null}, "shipping_address_address_2": {"type": "text", "index": 18, "name": "shipping_address_address_2", "comment": null}, "shipping_address_city": {"type": "text", "index": 19, "name": "shipping_address_city", "comment": null}, "shipping_address_country": {"type": "text", "index": 20, "name": "shipping_address_country", "comment": null}, "shipping_address_country_code": {"type": "text", "index": 21, "name": "shipping_address_country_code", "comment": null}, "shipping_address_province": {"type": "text", "index": 22, "name": "shipping_address_province", "comment": null}, "shipping_address_province_code": {"type": "integer", "index": 23, "name": "shipping_address_province_code", "comment": null}, "shipping_address_zip": {"type": "text", "index": 24, "name": "shipping_address_zip", "comment": null}, "shipping_address_latitude": {"type": "text", "index": 25, "name": "shipping_address_latitude", "comment": null}, "shipping_address_longitude": {"type": "text", "index": 26, "name": "shipping_address_longitude", "comment": null}, "billing_address_name": {"type": "text", "index": 27, "name": "billing_address_name", "comment": null}, "billing_address_first_name": {"type": "text", "index": 28, "name": "billing_address_first_name", "comment": null}, "billing_address_last_name": {"type": "text", "index": 29, "name": "billing_address_last_name", "comment": null}, "billing_address_company": {"type": "text", "index": 30, "name": "billing_address_company", "comment": null}, "billing_address_phone": {"type": "text", "index": 31, "name": "billing_address_phone", "comment": null}, "billing_address_address_1": {"type": "text", "index": 32, "name": "billing_address_address_1", "comment": null}, "billing_address_address_2": {"type": "text", "index": 33, "name": "billing_address_address_2", "comment": null}, "billing_address_city": {"type": "text", "index": 34, "name": "billing_address_city", "comment": null}, "billing_address_country": {"type": "text", "index": 35, "name": "billing_address_country", "comment": null}, "billing_address_country_code": {"type": "text", "index": 36, "name": "billing_address_country_code", "comment": null}, "billing_address_province": {"type": "text", "index": 37, "name": "billing_address_province", "comment": null}, "billing_address_province_code": {"type": "integer", "index": 38, "name": "billing_address_province_code", "comment": null}, "billing_address_zip": {"type": "text", "index": 39, "name": "billing_address_zip", "comment": null}, "billing_address_latitude": {"type": "text", "index": 40, "name": "billing_address_latitude", "comment": null}, "billing_address_longitude": {"type": "text", "index": 41, "name": "billing_address_longitude", "comment": null}, "customer_id": {"type": "bigint", "index": 42, "name": "customer_id", "comment": null}, "location_id": {"type": "bigint", "index": 43, "name": "location_id", "comment": null}, "user_id": {"type": "bigint", "index": 44, "name": "user_id", "comment": null}, "number": {"type": "integer", "index": 45, "name": "number", "comment": null}, "order_number": {"type": "integer", "index": 46, "name": "order_number", "comment": null}, "financial_status": {"type": "text", "index": 47, "name": "financial_status", "comment": null}, "fulfillment_status": {"type": "text", "index": 48, "name": "fulfillment_status", "comment": null}, "processed_at": {"type": "timestamp without time zone", "index": 49, "name": "processed_at", "comment": null}, "processing_method": {"type": "text", "index": 50, "name": "processing_method", "comment": null}, "referring_site": {"type": "text", "index": 51, "name": "referring_site", "comment": null}, "cancel_reason": {"type": "integer", "index": 52, "name": "cancel_reason", "comment": null}, "cancelled_at": {"type": "timestamp without time zone", "index": 53, "name": "cancelled_at", "comment": null}, "closed_at": {"type": "text", "index": 54, "name": "closed_at", "comment": null}, "total_discounts": {"type": "double precision", "index": 55, "name": "total_discounts", "comment": null}, "total_line_items_price": {"type": "double precision", "index": 56, "name": "total_line_items_price", "comment": null}, "total_weight": {"type": "integer", "index": 57, "name": "total_weight", "comment": null}, "source_name": {"type": "text", "index": 58, "name": "source_name", "comment": null}, "browser_ip": {"type": "text", "index": 59, "name": "browser_ip", "comment": null}, "buyer_accepts_marketing": {"type": "boolean", "index": 60, "name": "buyer_accepts_marketing", "comment": null}, "token": {"type": "text", "index": 61, "name": "token", "comment": null}, "cart_token": {"type": "text", "index": 62, "name": "cart_token", "comment": null}, "checkout_token": {"type": "text", "index": 63, "name": "checkout_token", "comment": null}, "test": {"type": "boolean", "index": 64, "name": "test", "comment": null}, "landing_site_base_url": {"type": "text", "index": 65, "name": "landing_site_base_url", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 66, "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.shopify_source.stg_shopify__order_tmp"}, "model.shopify_source.stg_shopify__product": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__product", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_deleted": {"type": "boolean", "index": 1, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "timestamp without time zone", "index": 3, "name": "created_timestamp", "comment": null}, "handle": {"type": "text", "index": 4, "name": "handle", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "product_type": {"type": "text", "index": 6, "name": "product_type", "comment": null}, "published_timestamp": {"type": "timestamp without time zone", "index": 7, "name": "published_timestamp", "comment": null}, "published_scope": {"type": "text", "index": 8, "name": "published_scope", "comment": null}, "title": {"type": "text", "index": 9, "name": "title", "comment": null}, "updated_timestamp": {"type": "timestamp without time zone", "index": 10, "name": "updated_timestamp", "comment": null}, "vendor": {"type": "text", "index": 11, "name": "vendor", "comment": null}, "source_relation": {"type": "text", "index": 12, "name": "source_relation", "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.shopify_source.stg_shopify__product"}, "model.shopify_source.stg_shopify__product_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__product_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "title": {"type": "text", "index": 2, "name": "title", "comment": null}, "handle": {"type": "text", "index": 3, "name": "handle", "comment": null}, "product_type": {"type": "text", "index": 4, "name": "product_type", "comment": null}, "vendor": {"type": "text", "index": 5, "name": "vendor", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 6, "name": "created_at", "comment": null}, "updated_at": {"type": "timestamp without time zone", "index": 7, "name": "updated_at", "comment": null}, "published_at": {"type": "timestamp without time zone", "index": 8, "name": "published_at", "comment": null}, "published_scope": {"type": "text", "index": 9, "name": "published_scope", "comment": null}, "_fivetran_deleted": {"type": "boolean", "index": 10, "name": "_fivetran_deleted", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "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.shopify_source.stg_shopify__product_tmp"}, "model.shopify_source.stg_shopify__product_variant": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__product_variant", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"variant_id": {"type": "bigint", "index": 1, "name": "variant_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 2, "name": "_fivetran_synced", "comment": null}, "created_timestamp": {"type": "text", "index": 3, "name": "created_timestamp", "comment": null}, "updated_timestamp": {"type": "text", "index": 4, "name": "updated_timestamp", "comment": null}, "product_id": {"type": "bigint", "index": 5, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 6, "name": "inventory_item_id", "comment": null}, "image_id": {"type": "integer", "index": 7, "name": "image_id", "comment": null}, "title": {"type": "text", "index": 8, "name": "title", "comment": null}, "price": {"type": "integer", "index": 9, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 10, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 11, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 12, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 13, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 14, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 15, "name": "inventory_management", "comment": null}, "is_taxable": {"type": "boolean", "index": 16, "name": "is_taxable", "comment": null}, "barcode": {"type": "integer", "index": 17, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 18, "name": "grams", "comment": null}, "inventory_quantity": {"type": "integer", "index": 19, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 20, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 21, "name": "weight_unit", "comment": null}, "option_1": {"type": "text", "index": 22, "name": "option_1", "comment": null}, "option_2": {"type": "integer", "index": 23, "name": "option_2", "comment": null}, "option_3": {"type": "integer", "index": 24, "name": "option_3", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 26, "name": "old_inventory_quantity", "comment": null}, "is_requiring_shipping": {"type": "boolean", "index": 27, "name": "is_requiring_shipping", "comment": null}, "source_relation": {"type": "text", "index": 28, "name": "source_relation", "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.shopify_source.stg_shopify__product_variant"}, "model.shopify_source.stg_shopify__product_variant_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__product_variant_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "product_id": {"type": "bigint", "index": 2, "name": "product_id", "comment": null}, "inventory_item_id": {"type": "bigint", "index": 3, "name": "inventory_item_id", "comment": null}, "title": {"type": "text", "index": 4, "name": "title", "comment": null}, "price": {"type": "integer", "index": 5, "name": "price", "comment": null}, "sku": {"type": "integer", "index": 6, "name": "sku", "comment": null}, "position": {"type": "integer", "index": 7, "name": "position", "comment": null}, "inventory_policy": {"type": "text", "index": 8, "name": "inventory_policy", "comment": null}, "compare_at_price": {"type": "integer", "index": 9, "name": "compare_at_price", "comment": null}, "fulfillment_service": {"type": "text", "index": 10, "name": "fulfillment_service", "comment": null}, "inventory_management": {"type": "text", "index": 11, "name": "inventory_management", "comment": null}, "created_at": {"type": "text", "index": 12, "name": "created_at", "comment": null}, "updated_at": {"type": "text", "index": 13, "name": "updated_at", "comment": null}, "taxable": {"type": "boolean", "index": 14, "name": "taxable", "comment": null}, "barcode": {"type": "integer", "index": 15, "name": "barcode", "comment": null}, "grams": {"type": "integer", "index": 16, "name": "grams", "comment": null}, "image_id": {"type": "integer", "index": 17, "name": "image_id", "comment": null}, "inventory_quantity": {"type": "integer", "index": 18, "name": "inventory_quantity", "comment": null}, "weight": {"type": "integer", "index": 19, "name": "weight", "comment": null}, "weight_unit": {"type": "text", "index": 20, "name": "weight_unit", "comment": null}, "old_inventory_quantity": {"type": "integer", "index": 21, "name": "old_inventory_quantity", "comment": null}, "requires_shipping": {"type": "boolean", "index": 22, "name": "requires_shipping", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 23, "name": "_fivetran_synced", "comment": null}, "option_2": {"type": "integer", "index": 24, "name": "option_2", "comment": null}, "tax_code": {"type": "text", "index": 25, "name": "tax_code", "comment": null}, "option_3": {"type": "integer", "index": 26, "name": "option_3", "comment": null}, "option_1": {"type": "text", "index": 27, "name": "option_1", "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.shopify_source.stg_shopify__product_variant_tmp"}, "model.shopify_source.stg_shopify__refund": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__refund", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_fivetran_synced": {"type": "timestamp without time zone", "index": 1, "name": "_fivetran_synced", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "order_id": {"type": "bigint", "index": 5, "name": "order_id", "comment": null}, "processed_at": {"type": "text", "index": 6, "name": "processed_at", "comment": null}, "restock": {"type": "boolean", "index": 7, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 8, "name": "user_id", "comment": null}, "source_relation": {"type": "text", "index": 9, "name": "source_relation", "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.shopify_source.stg_shopify__refund"}, "model.shopify_source.stg_shopify__refund_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__refund_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "created_at": {"type": "text", "index": 2, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 3, "name": "processed_at", "comment": null}, "note": {"type": "text", "index": 4, "name": "note", "comment": null}, "restock": {"type": "boolean", "index": 5, "name": "restock", "comment": null}, "user_id": {"type": "bigint", "index": 6, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 7, "name": "_fivetran_synced", "comment": null}, "total_duties_set": {"type": "integer", "index": 8, "name": "total_duties_set", "comment": null}, "order_id": {"type": "bigint", "index": 9, "name": "order_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.shopify_source.stg_shopify__refund_tmp"}, "model.shopify_source.stg_shopify__transaction": {"metadata": {"type": "BASE TABLE", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__transaction", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"transaction_id": {"type": "bigint", "index": 1, "name": "transaction_id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "created_timestamp": {"type": "text", "index": 5, "name": "created_timestamp", "comment": null}, "processed_timestamp": {"type": "text", "index": 6, "name": "processed_timestamp", "comment": null}, "device_id": {"type": "integer", "index": 7, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 8, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 9, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 10, "name": "message", "comment": null}, "currency": {"type": "text", "index": 11, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 12, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 13, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 14, "name": "payment_avs_result_code", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 15, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 16, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 17, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 18, "name": "payment_credit_card_company", "comment": null}, "kind": {"type": "text", "index": 19, "name": "kind", "comment": null}, "receipt": {"type": "character varying(100)", "index": 20, "name": "receipt", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 21, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 22, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 23, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 24, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 25, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 26, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 27, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 28, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 29, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 30, "name": "_fivetran_synced", "comment": null}, "authorization": {"type": "text", "index": 31, "name": "authorization", "comment": null}, "source_relation": {"type": "text", "index": 32, "name": "source_relation", "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.shopify_source.stg_shopify__transaction"}, "model.shopify_source.stg_shopify__transaction_tmp": {"metadata": {"type": "VIEW", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "name": "stg_shopify__transaction_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "bigint", "index": 1, "name": "id", "comment": null}, "order_id": {"type": "bigint", "index": 2, "name": "order_id", "comment": null}, "refund_id": {"type": "bigint", "index": 3, "name": "refund_id", "comment": null}, "amount": {"type": "double precision", "index": 4, "name": "amount", "comment": null}, "authorization": {"type": "text", "index": 5, "name": "authorization", "comment": null}, "created_at": {"type": "text", "index": 6, "name": "created_at", "comment": null}, "processed_at": {"type": "text", "index": 7, "name": "processed_at", "comment": null}, "device_id": {"type": "integer", "index": 8, "name": "device_id", "comment": null}, "gateway": {"type": "text", "index": 9, "name": "gateway", "comment": null}, "source_name": {"type": "text", "index": 10, "name": "source_name", "comment": null}, "message": {"type": "text", "index": 11, "name": "message", "comment": null}, "currency": {"type": "text", "index": 12, "name": "currency", "comment": null}, "location_id": {"type": "integer", "index": 13, "name": "location_id", "comment": null}, "parent_id": {"type": "integer", "index": 14, "name": "parent_id", "comment": null}, "payment_avs_result_code": {"type": "text", "index": 15, "name": "payment_avs_result_code", "comment": null}, "kind": {"type": "text", "index": 16, "name": "kind", "comment": null}, "currency_exchange_id": {"type": "integer", "index": 17, "name": "currency_exchange_id", "comment": null}, "currency_exchange_adjustment": {"type": "integer", "index": 18, "name": "currency_exchange_adjustment", "comment": null}, "currency_exchange_original_amount": {"type": "integer", "index": 19, "name": "currency_exchange_original_amount", "comment": null}, "currency_exchange_final_amount": {"type": "integer", "index": 20, "name": "currency_exchange_final_amount", "comment": null}, "currency_exchange_currency": {"type": "integer", "index": 21, "name": "currency_exchange_currency", "comment": null}, "error_code": {"type": "integer", "index": 22, "name": "error_code", "comment": null}, "status": {"type": "text", "index": 23, "name": "status", "comment": null}, "test": {"type": "boolean", "index": 24, "name": "test", "comment": null}, "user_id": {"type": "integer", "index": 25, "name": "user_id", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 26, "name": "_fivetran_synced", "comment": null}, "payment_credit_card_bin": {"type": "integer", "index": 27, "name": "payment_credit_card_bin", "comment": null}, "payment_cvv_result_code": {"type": "integer", "index": 28, "name": "payment_cvv_result_code", "comment": null}, "payment_credit_card_number": {"type": "integer", "index": 29, "name": "payment_credit_card_number", "comment": null}, "payment_credit_card_company": {"type": "integer", "index": 30, "name": "payment_credit_card_company", "comment": null}, "receipt": {"type": "character varying(100)", "index": 31, "name": "receipt", "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.shopify_source.stg_shopify__transaction_tmp"}}, "sources": {}, "errors": null} \ No newline at end of file diff --git a/docs/graph.gpickle b/docs/graph.gpickle deleted file mode 100644 index 6ab87f1a9f54fddff07d88f4775c9c605d7c3ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380947 zcmeFa36NyhbtOg(do8SujQ|LM9}S|r3aF~ieE|rG4WI!w0X86XL!?Ae*+2jPS(({c znZ;bXSs*bM9afB%lp-XSOe@9{qp`La&x9#ilI5{X$_!biD2d{XMs#RKvSdw!JXVYq z6S5tasTfN>_ulv3e}Bu&>h1!nn}n9G{QtlA?%VFW_uS=u@4+Ac`|tRcchG;+`}@K8 z%3yfu6YE~j9gTv~y5HFtx?Am?>EY))FY;fX*;)DY&YL^S(|7TkhC3b)8-B+dH(IVY z9t^j4rbn8SPH)`lk9MX9=*`Y&cBaSr13!p<*FG}6kDn&1z^eyczuW7K#*M*b9K>3% zUw8Wbl-KtK{zi~O8%iFO9=*9UJ=mb;xigQA29u!|tdH7*txjvZ5&gM782Z7GKYVBF z%)OR z>}*VeH%>htj4q7_Tc5?)=m}6=FzD*2f53h$_Lw&Noz1iED-ZcOroxa;^v^u>&5u5q-0qLn4!|5&3it2wj z#&@abelYTeoh_nuXZj9|Xm8-sT(zH^E_M8%Kkl?T_^Ib)dfPBiCCA%a7|}zz7l%JS z8StdMxzk?z{?YVk3tzVT!Dz(uzI4SM_8V>sYZ1Svw*b-xzK8y}+lZ?Gq`_ z+x2PbLOXEAoz1|x(hmBLtDC&yjvVaZu`}7i5)6E&x$V55szrkbHiNNC-8e9IH%3^_ zlj$LMYm3&LG^T%{i4|(%?DNi`<&5zcKEuE6*ztw|*Gvz&PwPAF(-^zwsI~{1on8-1 zsp0xQ`aUxM=2ZhTK0upKP@ALiFbKwuszJA}D%Ot|YP2w~(ZUWIed#nNhZmCDqv|`f zrtl}$PtSK+gCX~S*HqmT9}2HC-c|&qzXL4=8UXrm)fo@2^j9&$&SeZKn8yMG@vcOZ zgUv0suUpN0jfTIK8-AS*2MHHbJx zL=YR$6nFzJs(;RC^`T_fxoE>voE|%A_BUw%6>1*`;aV>kW4}98)>%G#{uQT~uT<9Z zv=}zs@rqd#i_`aDoW53Ph%=6Po(#;aFF@P-i8d}28KD_-wB>GZg84Yu^X-8@bHfnJ zuxUx`((nV2@@+&4a~XTCu8NZT3c&35`bJ-Dq&uXpX!d~bYkx7vd~i#-_GjF+Hbnfl3}I{nFJ6Z-&M ze~f3Ux-=G?n5V7b;Bp72nA-K(@6q75Q-k(W8U`C+!OpU-WEE!u_|K|?^RyLsy` zsjtxf8J?5@#-XR!63Spe@PxS3s&l3@ls^_6m!;-#a0Oyx!!&I_L5t_8#j~&K+18y@ z#hl4Vq>C}W@+PD4U=s_4g%Ld2cD8yhL>OK+2_fNK&B--RUVgXymkpgH0|(5~|G$Z}VI%(;lQ? z7l)mih1f$heBuK7Dc_)%+hNBX61k*~Ai`vCm505+hdQF_jXp!Q>r^dCYLE~?y%FfB zdm=DqRlnr9!*OFgxD;rj?I)<3MZ{2kqt8LLJ3a|%H04B3%+gV>H^3Z+#9I$g{pws!j({kTOh`cQa|JVMp)p`L^@z$1*&*9Gm`4)SVMt3>@k4G&Wd`g;_W zHLWCLyZoIk=vjS8X}t!q$_c9!*h|UhsP&^%t9(YgTFD8smWA^iDKP!sw$nsO2uLGkO65E7*-?G5PS6{|-{(T5p@B(^ysLREd(=1?&Lr!x*VNA@86 z9izt3U#RfMQYK(kI2XTazJpC;$)VLc23^@V|bi)e5j&#v#vOni}db#GwRH zha~hX?GBVZ6dB7r+bogTi~|XtPEYJ?J%={A_xA9Hbfpn`(jc^;F&XyM8pwEwPQ6H- zdi}MRjS#v;$^j;1hyx0*n7Kkc>-!ieJx|*X@yDU!$Z;NcOK;$b)^A2I@(8W6eh{wZ zt@ie)yv6`+Ab349NhiPPp%(yn2JpW~Yx)3OR0k zA{?WYNG&8JbUwkuKAN=XPu5#qj1MhcT2UA#99Lf3?Grnc27C0Dj-kk!I?x}CwGbnJ zgXE`ejgdZ3EjZS!gZo2n8WS9VLy1~s>g)w@NLG}Zas3PRe-}+Le-7%fJXs^vgi{;D zMMyQGUBTaB{hni44ZE282_y*+2r0B!eb`H2{*dDGcJsG#Ni~}KfQmc=DHB7AvoI~v z9?cmwnakzZomU7)Q{vrqJ%iymvUZNC7HN-*5~fBu z1jF%v%NW(B2+|d=M4afcZW!P#2-pPKCwpnKfGbK1ki}EuxcHPvXbl3<_ z8XfW;bmV9ZY+Ww~q0DOdVg1q?fCR`h=Od8tDv@BRa=S%&G!Nl zPXm5*g=s^aoH3kwHuN*&1GM>CoFD8O`ystneZ%T`2%!hw;%V}eF zkA7*$3IU+>cOZfFV#0fNg#hW6Qpjj83j>H)+R%^(j78}ZB0MQG9`KcQRs@v}$oil^ zAu&WrS*!yB5L;zw36d3LW9P~c!iU@JL8&Jr8q8^aL`u4SG--|p=v8BD*fD@%{3+;i zX{qoxdLIgTN)lt)TWjjl7Ie80pD!b5MPul$(E1>VC}{>J7WWguNQfPGwxU$=y9OZ4 z9?)oQ9=kpE6jbFgT4P3}s4|wmbs;UW3z@o`wuEzltgMO?$=|5)VN;{hNL{GFFzInM zcIksQ`lEhO`O}V=k|ECl9Wr`iqWm2)>}HS@A&JMR^CcR4{@fZ|hfg&$jUSv_&E#Hz{a*;=9V{=X$ ztKm=ppw3!U>6ADh0%S^HifDJ21Dm#^LL1hani1;(=z2Xy*O;b87GHEitnDG1soovy ziRM@A_HUK;uLPZqwqBjlXP`n%wP`aT<#-C>jZ=YZNDhKN>FvWp^hd`ScLr>Q-k1b2~j8^r@J?1HXe~lRi)< zsL8-w!!O{rKqfIbWUv@9J$W(3pXB2DMOx_aU%_8I>lb(0Uw-lQAN=0Q7yjKp8&9Su z#MvRs%SG#hyxi{j*lZ^kpr?ZN?*#1!(%oCy?+%?}+7EYsA6`c7M-o0PZRhRsTxlPl zX1SrX-<$pF#5C-Cd)eyZ6YVG4tN6b)`-4;MTssfHh$5Y`W&BZnb7z88x0dB1Vn9M- z8Rum_v7nx&^3TXoo%9hwg;(bb62jxhvJ5dPFVNge;qeq=(@vYLAZcb8W8HCJIS+;e zNx^I;NVc_I+FzC)#*6{1E=Jjb+5CDPiUmgCXRF5PU4GDVC%v%|vJ4YQdxM^_dZ7ww zdC8ofx;3kX_8$t(AzuF`v1WDnMzDG=<9<-sjdsiUZ`+d)wKUYI;i0E$BkeS zI#|sbpXt$1laz|A2cY4B7!5|tv`Cl=N;v{cgsQL3!{{^A#K?-m=M5y9V&;NKs{3rW zanM$f)DP4;wPrJ-7A>Dy&sR#+b;}#Xu6xexMk?F==9Uk0MQ6OK`T;?vHb*<|9tAMN1vsT*h&Cg@_J@r1o-K=9ds0cy6&8X zAK7pMd>>Eoiodxs=$~XU$Py(DW=pA4iBLVJnikkR?$+tcIwMB|LWFsjsCukcrng@PcO~hkVcQbpPtj^6bt;L0>l&!L z=um_SSxvEM)BP>(6-hMRukfGUui~HYA9eq^{Q5ooGks#NxT5!?C9(YXcTA?svn3W5 zavCJ{FC?=pS>G=zwLJfKZWgJ3C_tuuLr-GrySjYvj)ND z6U(s3OvvJD8eY{kSkG4QF_;h=eO3L|TfBs2x!*{>v3S|t>a7^ngW=^6GD&@fF3Pze zpOOx98K*Zn(6B3rs*c$jGg!c zMD??y8=cm;0q+#8p;-?=eA{MLL>(FIT!#u_W`;ndV&{tL1bs&66P+_Y^h6d;spI%X zYgFs&IAYx42JHXV7*n9YruLvvKR^mR1jv|1O0hm*g`mC@*K=cn)BRL3R5ZIaIm8(0L| z;Z7?o&0t436ybB#49FQ>p%C*Rm?hPtP&v1spy?lpQmzNU9LQ!I(Jn1O9K-{IQ1;1% z63Y1)L$BiyX!Y|LW;#I8vOzFIz`GqLbDXwNTKJ5%$LfgQ{Ysn&e}n90B0CgDX}Cy4 zfE00sa8-DmV9iCHBBsZN!N(^Zc+4Y$LTs(7=9Cv`;<3c8(B;j-w#j|x=+Z>h$A6** z_MIitARC^4>2+rrQj2%VxfBFs=p`Ly9KnPRV@cp!lADyWfDx7SYhBl`@AI+ z+-9v;bI!&dV)L#=_rE@D6C8$XvpUoLEEcu&CvuiNP4(%+Mzcrj^a?AM0|pYRz(O%0 zOGYnbTSvnOpqkxGL$0N%P7L|@e|6zn=^-4h(+Bq> zHQDI}mk~Q?jl}ebHk2tIAO1$&%jcD`P|NIUx$t;OL(*tCb=_ZJeUv=QqjnTN0!8P? zVP(V?btoh{zYAtt+y%2$+|S~gV?Fk)sdMpg&RHCF>$tf?er0cdUry@rQjA2fRxbm)(qqH13rS%95d3a^BM9nW7z)<_%D8M+HARMguM83a21ssmQp zS1Qf+NoW$>%g|k&On?ziN^Y`LVT4;po?*;iIt@J<{e+J61{)gVqa6Cn!{ZQ(XSuG)=zHYa4c5(SAO4;6 zRb%#o2|fB>>GR2X9%m4MU987`(6biD^p22Jc#t4oT+X`0V|3zM?ft81#I&0lw3_ki z01JxF@bfO&aT1MoKWAisP&s1gAO!}nh|R{AS;UHt?-d5$!#xy2$|=V4?iUS3mV)vq z$s{QxVUvkYW6`#YLvv;Bp{WMfIx2td|C>zL7CI^$N(Ec!$hA{8n>;craqWPbIoKHqQ8@fPFrMxvgPocf0@G`c*j*uAT9a4fmG%a-eG0OuyRiXJXb5IhrKvz0oZ0130T~p!2nQ18 zIrf)?Uc*Z5VVig+Opl`UAE+4yTYQ z=s$|~643POxTWy-jYWS^&Aq0-NKv*o!uabTN=?7{4f=nP){g*43QdYlGFBunSjv}0 z+cEZk0p-Yc)TjWl!MU)uL*5d5`sHq@kf8*o?3!l7pmH)t0nQp&oFT@}&YNM7h zie1zj95HM%Cx(ffB^gX}u@oNC{V79}wt@8x+>mmR#s*B!Cn?$M&TC?=BR^p^Q(!A_ zf9wO@Bo5;`FNCr0=S85h$LAj#T5LnwQ~FGT!#@B?EDJGChhg0DrAOb4z@@Far$-_Ox1PBRSZts{F%zL0EP7!Q{wg7#8h;0(2= zg+1GRnj)j+X;E^0StkIGhd5a&3TTJo2peOZCL=;UXsD#PE*&17*(!O1`V^J&6Dql4 z3@NI)^I`yaNF)5T`Y1V-GV*51W6iP%14;KsaI_LMh*% zFYHEdv7Ret8+nB0e}{&EYsS=UBJB#&`LMDiC$?IVYB9#PA;c_cfc-uYpY8bULMVa` zSR|GPMRn7PvnbI{hiI5KFly0mzG-yOA`%~lb>}vYHh$5jj{n;N{vJIdkhMzN@9%A6=1Uy11DfhZ=kr@XnGLKGSFcn>IZ5Q>ps0o zRpS!X+y?2aL43pZ0f{|Cwd^1*M4|vQsfcGtyxzTZTi*q;lwTBC(s+-BFn#eqn@m?` zBTSUCafB48aM0wLo@e^L#V)WYvQ#{9vlwL}-OoUkqTgg8O1Vr#$r@o|lF?v_>Fw6* zP~DC{#d?1?aVpqF_4c#MSsTCmedaWeI9@#yD=i|OXuPP`s*H|t3qK(KYS;fCO#M-_ zEeC#pyjW2%L1lPF*NKa(U&u%s!J&})lUmOE~5fU+TBY;S1ogCIbLE_}J zHv5HkJ*6D!1Syyjab}gMhA?%j?KAH-37FA2+blW|KZ*==0i{WTw9ta@Z$z3rB;(^J^mW4Z_~K)!UpE4&}7w) z!XTH=o;|k$FK$d|Foe{9sgHDC7!p_;kSZsm%(Ez?m%K(6A#Dl);;O7*|R8q5uX`T%d1Y4aQO^Vok7bG~O_o5IeDS;Xuzb!$uWyw~o#T zi^cGeA7G7>W@N972ldLZ2VaI(P0y?^(8HIhhv{ReOgligJIF`8iJS;}%zFS1sgFos z-(gM3hhP@j*3);V5vGPoQ8x1vkjBY6Z0@N?nGbivF0;tDhv~p2%#3PQ{zm=pqOMyz z4l9TpuIzG$G2#KzpR1zgCrY0_ZI{I&;SW_ZGQqZKmaY0JOE^7Jhk)JAJ(__bI*d%# zwjCw?9VlRr-q4>cw1?R>Ka{LF{7`jk_BUwhyJ@7f3j~yoPXA+*u*}XBvzXO8xbjLfe%48=j93otn~Ita-}z%y!aFG==&>x8kNp!m0u(10lgtLnUg zwa(uw7DlQvMc;tcX?CGl0l{i4NZ6x$h(ak%B2E1ZZLoABFLgcXtET%I<9TS3d#r1W zk7m{?#wvj1`LLc^^mKpSRA%QexJ2V+sVJ~y`WR;0_ z5|JCSlN;<4#eQwBVsDM5rPTlWiOKZ6vz2<~MM@&zJbnI<`gT!O{v8Kz7FAyNJVT2& zud@{RQ<)09Qd#MIPw4M4&pmdz28;(AHpvB9{sB^>wV^WHFbWs6HmNr^>x^cfXv!c6 zLb4%~ja6s&KC?*^IVwwwS8P;GyXpg`YLkcbNtjZHmfItzB9)}0;W?k^_!Pnd8>vIt zL4Ja_J@xEh02vAvZ81oZETw{|RL2=%7fGK6h_HsZ#XEylm0qK)mB_;k#wV5rW>$b# z#l{t?dBm#{WbY-$g(bR>Ge3!4Kdg_R=}L@?V#N3!suN@9Ez zPv$hk;h03xB5R540uo)G%Q=N?i)sFk@1IQ9XERNv7wI;%`x7s)dF=DfM5#p?=?8Bb zMw%Rh43?VmVHR_JHjBAJ;0>pUt(9a5lQg-V`TUmk_WAr)DhwO4)@jxTcxvtj2&>E7 z1l=sO^yx(Hvcwhlq5ZW;^&bHcFTjumm_BgYB#nsHWA%E<88srxg8c-1@zN=-V5 zR&mN%qxs8*BBMaoFQ7N1SrUtmmvxqdjdjIeS2g>Fclp>`kA!^U__nS@(7!+@gGBPu zK;!X7A|01bTWod7dV&g1s^JqKZq5+Mnoqn^3p$}pd`i!;>Wx1|-K*B1&a2-ddM{6# zUGV9`Tt3ZXWbs^!WBSCF{BCja(mmVqN%=7cyLt~467#%n5O$=Xa)+@~Vz%nn6~JwzXlT>#2OEK7fG z*Kt^h+gfVXKT)n25v`4=u4}PPI?!qR&g&PRvui%aLxmd;H{tV%s~8M6p7Nqy{|H^0 z`2t*IC}GznxMkrOVX>B_K=9oV__`Ra_@XmtcG*LSlL4rBQ#vq!Pym0`xCBIOO*+#0 z%k=_*bB6D;xuA%o^ACY3lzx-@%cCI_SjATzxCg=UmTpYqh!bSG5aAoXJ+TTo=!jBg zxD@5X{5O*-EFW{_-x7r(MRE?=PcSE^+JEU7|kh4pmLEq>z5PN>1Er&@Ke zRB4?*N+Zd(Q$0uF19bb3=ImiKOn0XG6IkhJ33C!+EExro${J_H%K7N=5wZ?~a5Ttw zDjomWa(g`98a;LDR6FQxt!v&6*#1=8I~DZTCZkg*(eZl0=v1+i%N6R?dZ}2=ubrow z*3P4*H6n1W(_d3u^s)Bf3RdG9RK^~##x-tpjoMrr%?u%b~%hMkdn{< z_xdM>;ORL-K;WF@>7zpIZ;pW=CE5;9RM2QAR@!gFkh#Go*$sj&?+QMf-0TVUuM z_lHQ+e0E)g&!L2|l@F5*vlF{VhgH@#U7!Am`f>|QeMaK9T}YEz z+1S*6K=N3<9xN&HOP`rc^)1Qj!?+YlfvK{fMcI#jW{Z#q<8e!Hkce-5RD6iRY`aeaJ?7B*B72k4)$&kIIo>K{rrc{u-@t8GUHBfw6dc1i8Z{m(hCf2m zk@w0vV(9j9T&QS-q3}0a+eqg$QY)P>uosg~X)gjecqh2#ss3P-jE(S&7_@LV8@X;= zq(;F>H@7a@^c*#h^~oPT07c(Dk0P@!7p6lGK!l9LG{NCCn4ciw^sFg(;pJC8yqn>_ zgWFM_OksP8$7naX9;va$ht8ZofBMBUa~oZ7L0aNROl*BuVn6UYh)kZahp-<3QV{`9QMUp@2M`B%@FOzven4n zsQU%2Ys$*!?M2Jq)J4Gs*zNdVs#FUK^!JC(TzKv5b1XJTnwdqrn6~lP87L?0lLSXnb_4E=2?kq~Qs{TT z2vJIadxIol|FBlaM;56>20G%}LVYV~>5Vbc`}Ed+UTaoVgT);ZdiSw&l-5P<|JcXr zD%=;+RX8rI)wh#~$)32qldI0j9{3Lag+OzXb-I%jw&p_IqbvmiKiBW^b?91_*{R&CQev^OJAU?Ny` zKk*pD@TwjLu2lC=U8=1@AD?(a4ok_Q_QVr2yB~^&`;Vocn9I^>6fBPZTki;iaxyr& zrK>E&*l)25EXv=1^QPhNk?zl9^U;s@hTFeSxIM+9DpY&uufazX4#@=4x8Ri>Dx|Ee zKo5IK**8?$7}#t$v6T*h2!9jfe|;3JdC0>H!BoD|%vi4k)T*1Zc5#gHKb&Cvx;R|c z?PBq3j~$!;>oVz0?!O(I<#-ngVY){c1#9E}_L0!>E@R^gPg`iul67o^pu0u4>tEkA z+g0~`-cB{&?ae0r-S{R2{xcllw1NPJBb>67Yy|_{T62m)Y6g&y>xIA;k{AG}Tu%^5 zR>L);NU;t6>BI)7zK{u&qL1;nx+NO1Arr9y>Ch0EsGL_I4h^q#=-v{=oE!#NHemzu z$vhy;&Dfqq*+ft+%nk@S3AUqX(ouZ@vrdF!JpfO8?1jz{qKAz~%b);_RwXT#G&O~F zS`zC4YJ2Z_AVI(f7p?AqbqTWkjY{r%j$%kK3P|+|ffP%?rr^s9dGx<-HdFWN^dQ8ajko8PytJw@yAj67mMo=wn+nQ`un!F5(o&2LVMICIA zSSgHWa&{ToJyx~d119)0c7xMBuQK<;)TZ9u)V;$LjNZC*%#=gmJsCx<)}}{rwsyw2 z@lwgA;cpD@@t4(0eNvjC;e_hZ0}q!!>1%UUUDg9s_Snn%^+L7b%BKytuToU13Zu_Z z=i|@PhC)Okw4U&5Sp#xK0AzlK6S5X$Y%3fgO!N)hIHX73{6;O0kj6nTr7xt!;7a!i>LZxeA|y4B#_|Qq zyH93f>;~NH(+o!`GEjCs>6%X^UGtH3pn3l+9ccfFGFhImp(rE0v!s~c`RH6JMzmL+ z%6X8|A@%K|Qp~3h-z+vU-SfFpj2fZ#-bgVau!Lw4O8l-ZVmjNJCCe@jEUlz(73oUW z84|s3??giMP^AS>SJYa&c6z%-Y6z;wpMs%$Xcn@5_S}UtFTQsA!dW0O#_Xh;2Am?T zZ{dCw3{~7MCa&hJ*lLcdV_Adg7teghnR6G`37)^WVj&di%x8V>h-O&GZ$zdeLuE0Y zuWU`G&%*%fn@e2VNOCxW&k7=kw+3)t>2DxeA5_^PhfBkqZ8RR4kHt+Cu$fCt2_Ycv zmB#4fy&c?IdTM%r>fMAqUy?&?e`s-oc%<2m3JHj_}t+UG}ytx4qHzZ+y}1 ztpv!@?Vc2N2Y*GW@mAuUAhO{PJi1VcE<~N)DyCg_1(aKso|#%E!uFT#Uz|xP@_<5Y z><8^%iTwJD=|QaDN@=J4HS^ck^y5n zqHlWJ$0u;Y(-!HSAAs2ka^_llFt|ixa|F3?^pDAmD{+tD=3bta9SJF0rNBCdgH4B%t?c{vYuR~tMizVj3ikm2Z5*WK&{>&O%iD18#Vaq9VCbZI=;Iz`md z${O)sy745frxJ^9hwj(a1wv}qz0u_zc-cNgYh!dO>w^=iJ)IuJ(sD=X!vLRKx+oI& zf%A!r>vTqKw@|L^bpJgDXZrqF;(Oy9u@i-Vg`W zlE+qnqZnQAd;~soh)2ct_yKiC;&S(onZ8ec5{3-rS4+2%jhQ7vvU8T({wLVGq}rNH}M!o49}R@?TNL zX}bFxnJRj{22wtf*VJVC>b3H9Qqi$l>Gq|D=JDNMBgO#s-u)l&NB4`eLb|_>e{p5! zZ}2}E+`Ri+c&m7L_jkA;ac;B9;_F0n+>p;w5RT@v-M_ScOuGM?>eg(w`$t?m?}H!c z{t147wm;>6_K=l666HOK(Id8c`ww6oyBS$?No@g`3eZdnSj&hdxkP%Bf zy)RkfqcaKD9PwltM~rn+GsHPVA^dRON15!fRP%y*rCiFj^7RsYDrz;aQpvacQmyIN zS{1)sYc@-sn=iU~u)takl4`wP0|zZuAgC4s5k~hHJG|baqU@FH%Ud`w_&N)W7Qgym zA2Iyu+|~0d*ckZ6CY1vC?POP!7TmC_e}Xtc{bOIStB3TiPaQGhRv+J&+={a~kpR4%&B;{UEew_PW6|6V>s2BtLId2 zyS5pXrzkttzG6^!>y2p-6!E2hv@iM6yHd#2?C9YrJF+^YC8pHQ3iC;SmC18zey!=% zYn58wuQzjkx#|M8YZY5wz20i&i=J01lyZ1i4NCQ9(=Fw_e9LV$3$<3QT=NUXZ%Rj3 z2hQy+^z}>M@>hoEeDLadj+M>r?Ualt-?!#9B2_8?toy47y#@FT@8kXkOeOmO>bhU= z>%`a*FZvhzk{20yB~G(uNXMfLDgCn()9k(rYnt&slRp8&uQsbKuTlz-?-@E&r># zTXfgXaz2+^Icb?Z$Ukbn9p*Lc2?ecRI`$Wa=~Z^m^vLI(%vo<0j^F*KaF5+z z%u7dGJ=}fg(fx?VAE7zYOzC!EO5vjuQ=wm&jru#2vDDmhJ;;;j15GPeZ|2LDToKks z@Qp&DT&`7t4*AWR8`SbakZZy!>AAH+zKP$tVx>^MZj7anVT~lipD{+J+aF~KouLh- zcLb#hvaE+}(li_ZCe0Ci`Y&mFrrw6Ukw)xcFfC?~^C-v}AtigO=Uxg<#^^CNw_mFK z=VlMSu=_oz4^ORJzvZ^IIriLF2$r#ZCye*Qz7Rg{NgY2DJaYSTKO2F-o^QRsABhSb z$xlv9)B7v?KjU2{KPY=%uGp&Q%6S4>N^YfGs1$&zlz6Fvy|SMZZ%#}jos!)feU!OrtA3>%)M_pG5Vc&-Ewl=yLakmZ zL9E38Rz0s)C=~p1vsr7w8txTpxoWOjX!_M=Ge_tAbvwkb+op}Jx$t29@Mq1IsqKEt zh||)vIs^@qBz<%)6BwMBY-V>fS(`qV?O?vMD6cU{5#2 za&$j;zYAV6`%CB3A&ay}{@MQABQj61Jz_t^9#M0t_K5zKxkoCkdcIt!7hr5_y7hA2 zg(H&f|B;iDW%HF;!iVy{3O; zZnahuqF1q=hhSDFx5HAtPz-?J2F0pZ^ZX)^+gg#*oZyiUg{#`~D<$7;mC7zmOnGnr zZMEetFS6^j*JO=er^+lH>-)dOY}^-jzi~B^U{a{;GbpBQkeBY)_nRsD-t@tv6ZY<< z{fMhRkV>#VaNi>=V8%BmrWsup7LoNblVw!vO)m$0wp#Ftg}jF_4&(pz_4P)PJ#u~Pv{=n&|CM1i zXRn^sNaPZG&A-*mCgR&-v6hHW-mh9_=zSqd7$1`O$PuS`VPA5ZcWW*ZBU$sBN29zZ z^{W%p%#I7c$$p*5aXhF2ZixdT3iW!kSc0IEFPCcdqFaG>3}+ZPzxZ&1!T%%kPrc}o zKHV(W$;ce!_MwmxWhr~%;d}kr)LuCE@wVMF*7tKiX;|M=yJvkmS@E7~NYRC`FJSEO zb{Aq*+xwDL-Kr-?^QOCmH$@-YH`NID3H!#;u&E(hK`mFz7xI;Iv+9F^)GFl4TldOd zIR`|pRfR8$->R1UR;%EbD!3oP^*y)P3LxFoAO!70ue;bH3-N>h_OHzbS>=4>CPZG} zZ8zR%=u@E)GJLZoK5`3;uADMg3ec6{%S%fR{u>3oz#BVHNH%QP&EP7z3{!Y&g^ls% z77X8SzPYrtvbwZ{ixJ^#g3CN&wQ&-gOIBVVaNIz@(3WBlu`i=`pfhC0P?9``@a|w&rs#zSn76` zS0V+&Uo1Kr=0G9Y@u{b#!5&ynn#K+P=KmUFHvi3%G6|-(Keq_ z_mL(l%uv7~A;>TP%t^gE?bjp3ho_V!!L^AbhmsgSrL_KlV#-Z<-3w0YE)-&sE-gjZ zw_33~NFZ^LchXKQ$as1BBxjI_@38d6urpneuVW*Wwy1Ze?@j$SHkvzuigR9`=618! zX>0CWMUfyLPyO!cE!OVe(b+O2zWN}hrWfoa1FX{xy9)lI{QQAVbdmI)|Il2;O4cB&jf(|w0N(g*Y`KqqLdbWa(>B4wAO;!EYTf9Vy z{(j0EE0d9Lx^%ayfiC~TC1AtL9ZWfTl%pQ0-{u~APP;^z{bU$G0HtojB`m?FmF}ti zZ)LRZic~GP)}!Xy2XJP#+#wE3q}szJC3;dhi4~4~WY8sagR3=dMK5Te+sQVNeFOR;Z1I4jI8pBbne_Xdkd?Um4BFABGVsRWm)x=nL8qF zOS2C}n`M!J$0d5%UH69!=?9T0R94YBD$BnjJxAIF%J%MeMx1DKgqs?XgOjgn)ECTR zi;q#37_B3hae3P|v7`bEu}j+JP00O`D7m`7CSjNvHnc|z5Q5qOw+6{IL49NoV>fFw zjSSBaSaEr_t|ERl1<|MY5pLgsjLn;yF1@3DF3I3+l0R!mKBBihP3tldEU6x8kZ5V> zl<|})bZbH`;B;SGxPPbjV*L+ssX&J!I-nNFf+Ss_4UjqgC7OCHu_L4sSgmw_ z$`Jg{(WME|%2(_Xg>fCMl4XM*|MIX!iN(S z@nt7c#HQtQhL(e1x{yy$_yHO@{-sx!nku{CFPnn5tIO2Ys-qhCo;H50xwqOTdTFv$ zPno#+azC2!aQ)0%qJ*fZPP32<1}jVS5u!WX$a;OLk8I+E-;B?Aek<0xnr-5e8l7S&eRC)B6#5@!lazS*U&~2m$YLNWJGc_O6~9e z)cQCgLH*Zon+}11C8^ngIjHf&sb`ft&C_5BSi(# zuk6oNKDMN`BQNYv)g6=^3PwuKGs@FkSF3e72TY^oPI@?ZIoX@hpiU;g2-~%e1(`GJ zYg_Y5>6iT)ikZ=?!eLxcC*zVUO9(4L8mFIwG#=Birte8rgTi)pT%`d`ucINv-Ibbi z;BqIp@-}NZ?_`B;ra(>l&bQve*3f;W?>q+5vy>Uq1hn4sgyJU)eSTuLav?g<%;Cz$ z5|QVrSgtnQHCNTFBE+QdE~0_ zBa8-g5U7{dGXv;lzf6L8r!v7j87_T%MDaULS0K95QMLR5oINL$ z?HP_CrA$pls3Et%tTZomMIPO34%Mj;$<<9IA(Z1t)9{a`5!SBc-FjV0@hsKeibD_A z`9UjJ6_*yT*c7!Dy#uD|1Av}byM2=KAUhjDKS1Ve=%4f)mnDo{x^7-y5|`+BcO|?} z5Gi>{J*SR8_3U8K3jlI-fEz-eCHRVBV9nU^&Ak}M5%dw#rd|4*O50RYHX9j$!?9t>5K-JqH;S}*E$D*mz=-~zZQRrlfc^QtK^CMZjhg{gxK0Vg zZd61e^S~xF;a}`S!RkE;ct9;i3rRSUg(Sp3jayN}_bTyV=I~^r2N0`Tc?4Xv@`Vb* zpGrQm^CSDI-zqfWlvF6dqS`|C!D_Kou2%|(f#RJkv7^hgI5RMK^s#kKV7;$ozm z-K~GooO0jr&P6|d_d6g96!DjE$;s6%S+4D2xDZ4!4_&BPtl zfFzxU=H9d?zkfzZ_6Xz{Y4Bsxo_Y zlrBL39^(#0K_E!yW_6To;P$0qPIKFNK^3>O#IBFLj#B+GjdM_K@N$KtAhiBdR6ipe ze8Z<{h%`_=EYwyC*72?ICYGuXwNY3M?(S)QnQVKq>Gs!J!w#&{y=~kf$=6|PMOm*w z=k#PezztkL9D4XF#4=bou&97L0o(EI&SiRd{N`!8({_X#v4DeAN^8x|7?X<|#@N-z z9iuV;5bUz-YI;*JBSR#w9H14jgeatm?-wH{j6nOD>4|mD4V>|nfgZgP;4FBIu=@&q z%{Rz({8fhnffc~Ajr3&VzXrEk21>^4))Mg>I%|fTpe4?=PS?-TB))W7Uj?qN88xVv zoiE=I?K z><2x2t-NlA?+()xtm<%tqY?a8dmrn%G27--ja$76k7-7~&bzQdgg~D!GDK1tP zebZx;EgHAvP^Y{A!Q~5!?OWy%I0VSi!S)a8ruvOMO0}jCiv1$aB^JeRDF78hPZvIJ zted-(M6hxNbox=qW!Hk|sP$nZG#a%@ajDR+?9cZNprg8SQy@CmD@)>y3h87ELxkyU z?L*PkNnkp9JzAj7NhQM0|CaJ5+s^M+WeV1r@jg?eMRuoJ3wJNN%^;85XozX0ET;%9 zYZlA-npeY}UoBk2SPhWmrs7pyuhhyRzi9;t)Jj1;9}S_0M4O&YaW8-!!!*C}>n+1H z^NXu{%G)r+bl!_I^qMgpRqKt9?L<1VON>XCeVecz-Tc*JK6A={!(%^LkWX$dq@vbXY~!d@I#$g{a`M4uas| zA{Al-kB{&+L2BIvM$ro_O>ZuUbT+AsE}-@6p~`@l<_Dm?kD9e2$V@O=S{RNJ2GgRN z(ju~+q`IRKS+N>uiW9+EnE@RYs&BrRQmhSo5`M~;eNnviIt-u5HR6{pRXW}#h}I`pEsn@qcV3^}8t4TY??#ZZFPm16 z47R9)jXW)q&(b21$2kRq=wcb)Z=r0CwJ`vDdVzh$(f3c&#grl)*yJ%SYxlTGFeG_JMNb1owb( zXl&>K(=uL$+stH$hA29m7ODFv5fq8kjnQl`#Z1%8I@Pl9L1ic&}4_NwijXs z7j;aliHp6cxAe9%kg#IIp3dSZGu$bSUnFB-`^E^Ca^S@VP0uMsysSH~am211e6o7L zNDv^?r|dlV({)~uz$Ex~G@U$fRbYF9FogVq z?b_AMp|B5#bC8lA}y<0QF(g1J$(la0-FN3%fMNu+x{_9!fd* z_X4OwIUZn~E?ADvc{x0|R6yVGw?sZQoUn1F$R=sVn9tDyObZFtdq*~vd;zOTkIjBA z%>tb%eLnNFAT8Y3X3Jzom8V7QUX->NK97gkc@zb-MR8V*F-{yxCEJu)ye@4C{NDpz zQ;AwhYY`^7L0yYl-!f;{7?6!|$aygskFe6mlOdT+!6sssJ9{N88N2c!k&=n&y-MxR z6`E-^fC0e7$(C>}BcMsf7NvZHzOWm-(=>RC^#!&1JJc#y2>!PjxTDFCB|BMbdM&DD z7+d6!lB71y^nidh#~<`hf;3)w;Eq@nJp>kzuw^xCrGub-i&|8iZYmwvY$|8Ly7L`w z4|Zg(6uCV%R-H@uzrh=;kn4P>*R*=Pmrn0*lkM(DzuUmjR|z2*8{R*(i+v7B6#R0k}`_ z$@xQ=?c41&n{~HV^5Dk}Tc2M?7Rh?KST0uFQmJ0emvGNTrB$uAfKmFm{slg7McfQi zgZo>>FINirxNo<)CsrLtnhnX_zMz-z7AL|fc6X()FFG54cpsjP_a$l7*13mynno%4Q?%Q5T1VxiOMR1Re{)Mn@#rIi zNeP#J=UYKOACziUgenz~2nAj)ei?C0bb+Uf?2ye?t60PHTD1}cWw(&8Cj-S(dc}*$ zh1D(dUDDR}WR|T>1K?0lqaosZsWG+Bh~j++nw&ChtdQOr=IA2ug27_BmBE7W@*ReSs$s zz>K;Xu*9DNbZDExuG{{ww0%#!Tb{~(S)d-#4`|Ln$=S+znbKr#7@Opbo_$Pee^;V* zvU>K}e8R>~wu1Hn;YrxK++Ai{wisX-gOnMKd6|t(`r{!t#!mCLn=I!j9GZq_)ZUTW zA4+zGYd4VED>PtmBVR+#K!Vg5@nWNDF<+^yh0fG^$`&VKAS65(CxNl%26c;2mG=_? z0zcb5oiV0c?lz&4fMCY$fejnBC(>eK(UWtsY4F>qL3UTZ=Jq}*?cE>mVGr2dcp{i3 z=PA?=^op4=ai7lW0}@1B)}i>_rLkxpIupC0DnRVcsS83MS$5*r>S?=hH{(DVQ?7+Zz4r8 z3`LmwHKW`AP+Gk^-s&424yu7k5+gZ4uX<|Z;sv^gC$x`OoiiQw09m+~KO^leHHSzE zOj$L!8BU#g_Emir=w7Ig#DK0WKia5l(Ee?Q&B@3T0#aE#w2qSLLx^E&G$-3=3Zcva zvh4dXnGY`ol>LIVLF5pf{SD^*1#NPmCJX_TDHmJp=qmO5Z(NXE9L zy+R{wxynG-c?6w|#@e4((}$G8Gv@4V!=p}m1!AWU5J26Rjdc6Uqmx;&b zB%g!$RT`oB#B+_-N|@{V^8(fDB8DrB+?wACW{MU-M1VVuOp(uh3_!_OWw4Iul)f~- zOg-DlBj=$$`)Hk{r2uY!P3pQuuRbNYy@!YnN1jI(7{30>>VNwWrG|sNLWz`zsjU7I zg=Fa}Da|hVr&97xI00b&bzHvRVm#q|&mW~qi0MsWBx^Z}X~RqqI^h_OF7wXmhuMAv zUmc2!GKL*ldSuX(VYT+l>@3^7{&e3JF_;oa8^|sUs+2Z?Znd{Z6a{HqWvoVJj)}csASA1l-Ki7OzyU2a z@DxZHdbDbVRpLB=l-%s}Dd>-gO&w;j#F^K8Fn3^|#h{KRtrq?iw-<~FtwmZjs0z8a zC?JkpkAxfa=q()?k#&=j$m(fZE8#3wNw*sEn33F8+N8{+TjS7OGRdb7$-1El{jLkT zm!QkIN+^3A36(DK+Ivtsivr*Tn?TdukgJF(yuv$(f1Z@U1K`E+bkdJ)BuS;NMn@3 zw=v{Gcy#H>wiU}LHZRRR7nVue+Co$*8UG~#C|3Z2v3Aty##>fR0Q~TJ+lcAf`= zjw1`@Av31O6y3CAMZKVbeT1$FpvJY(8>P}3f#as8+eyS6N=|faeX8au>im_UNvy!y zbDDcN9$fS;VQV94d#8U%FTU6&?=G7r9@L4_jZ&|bd{*w+vou}7)&;dhXHVk#0`;?o z|FXT8cB$ddBA{dlz%8VbP2O}+tNBG5%GqkZE}PcJr%V&~>(9a_LS3JgqQ!N6T~%6( z@1NPCQTX|)3tNSWY1^}!c)>LBu>Q>IR8;F{2MS9`*{#;E8%XQw%Z3hI9T}UysOtYL z&El?9e_df(yRVsclN%!f0Gy^~cLM;-YV{+gRb0s%>#f%MY4eN5u5baZLFp1{-T59< zaY}cz=1(=VPD0m5FgmbE)xN1Zxx@6)e*FM}Zr3z-pYE_(m` z)2=ZBU0X_{?PVoqiXXMX)jX)-N_LgAT!n;?$EUv3goHR&F8m4ShL8_gp#VH0&Ph1v zA(=T>hBziUF}T};$a@91>=8)ZZi?h2mY8Sm4INnKVio4pg{~CHh!i2$fzhxl|@YV zADY5!hnf~|7Mvuz(VsDm-Y1Qc+Q^Y0qcA9`Ol^-Qo5T+} zh(KTCB+EiBc%n}-RQm2eF|FJZTU?uSs$LCy3&c@v%ft%OGaV(s`H%{e5e4FMBs}UD z3`s|YBrG}_=htHdjcM3rX|aPWLtymK+61wVC)!=HNBmbz!?#Mq;-W}xiwP-hoaGxH z=tTI^JO@(-HlupNj6g5x7768isvAdBOE6DQ7tH5Es2M|F7(y%F*nkj@>?;Fp_H$l+ z3?d>?)A-15-oSl$CZ=Hyf05=`hAGQO4iV1J7l&>Ex%B%6wAmem@j&TW*N>Y zd6)CE)Nwygz2dqEB(Il>1;1LTySaSM_q}E{0G5`^yNRoM?n+x|dwEOGul<=$p*~q8 zqb6kq9JwAxml+oM1fp@+Odt|J&X!$V=WW%vs7vPlO0k>hz=BShcDcn}GjYGn)o0tq z#X;ef-gf)*yfhsryn;>N>%Bnv41Y}~F)q#q+T=7th3Z@uX(f2dPQT zBJVSuKAW{-HE8BM_>$#uw_U#KdCiKO_lo&KF{t|aQpImJ{kmHz1}=O;5${kgG~Jqu zL}!J-YevscO1hHSTjTmU=ZmBRXfDeE6gM)P(~#8l^CBcd>7k3hyB{#x)9u!W%INxT z(#fG(YW>an!cv;DY}?PoO0z@+rBgXdS(TAdJ7&$d>!Xhfchw^N*Wf;cj&pO>DP4N6hK0sLOf%~qA-c_aQ0Hudu@pIHq6ma`UFreSf* z49`&?-ejK6%5q<9p~y>{w9BUCVal>`#oeYMeVWSIh`4&kz($;+&S*4YmxJM8veC9G z&w_#Isn!J+9b0GBgQ4VI>1k3O~e4fRFz%oB} z!t5-L+oaSa+EL3Q0mvZS%>r_*pj^dp3X6DcrTPZ37hKXeh;gY>Az!7f&S{7Bme-C& z;vlD=st#C#(9ZDNcwWsdw$d2mIm>Uu?po#=`cX61M=6JsxdWO}BSFE)^&xZ(vTC)+ z?S9tO^DfnyhI^SV0jCSQj2|R#T0Gk#KRns5#^pxYsgdh=|XA zMH#(#wTYfQIG6yWRTkBwL;mJqndXKxa3d@Nx%^9$ z6LAJ2ir@x=MF;P99&dJj=f{z8W_OBJd@+=S0QS`WW7CZX_0-xU9y+_cOg+(bM2AH= z^}>UyGj8J$khCKp-odSJCO9JWfz0N_K@jBLE_=L`YwP9s1K3{5*5C~Xd=2aQij z!?Lodw0r%_rqKhJFyvJGyQqKG`bQTj3A$bCS52wI>|VMxrh=zW+r`jFIG%2i8&CAI zJgaJ*G(~Y>yNNHFChpP9q!E0Ae4k8OF1~m^gs{U5Yj!Cq%fI+WX6+ofSP@B|0Gi@9aS4|>|&vWIu zsp_y6uwDE!#!_^Ev}7v0ZmgZ?n^lY@S20RjPwmRmjW(BPj4a8Ttu|zxVFQq5y`eRt zM0U2|h-^f9yvTJTR7Z}>Y-`S5#(cd^rjxJztTCNjg>G-qK{6m;ivh)&{F}jyVs+=H zFs6L)>WwM(P~6ZamD!L28CH(px&I6+?@gFX>S~;Y*FO=$KFPCrm`CKdK*J_n=*>!Pg4UnQ%ty%QEdZ|_`!p>68RhzkDseqfO z>(yF30|p#C#jt-C2`N!{H+Ce9sk!G17fAO;>&jto7?5M?pucSFY&2R( zY=#V^nHR>`uSfPd9hRkC#St!?a0g4~8M9iXwEkdpa>X%iW1UbH^k29hgwmyzrKM5O z!vb}lkYGJ%6o@l{hL({hBcEwv$r{SNO_@>I{nlq3dwR76Z$OL7!!tKMn_XVpho|eK zGs)Jrm*q6uOMETrOdE4XLVOtJeUxpADb-6jTx&J2RVbEQ&0I5|_i}}tpUahSrEspE z!!*(lan2FgOk6N~<9?w(k0U z#_)1P+DD_P`Ki|^EGR%&v37t}q_;a>o6qvFx~OT#t~|@C^K_ziWxp|bcT_~ywAly+5Wh)FSk2tjcT|?&~iRPxcVH{k3E;PmeiK%2sdZs-(PpY9} z@od1J>pZn_YAs;u2TfhKhXbeUTeSvnUY*u#+%%9y?BekM`Oun@t>wjNa@EJB5wpJ= z+x3POv#$kx;WdeHl`j0wDXWSt+G%<1MoUl{@6%0z!@P3!I80(ZME{+1zanU@Y@_zO zr?*%#4QEMcBU?iEw+_GK9n%AsJHeHm?(g7lBv8oX@mKlJ?!TtDhj0Tf(r)i`|41JG z3I6%mPWMmwpGo_H>D|ya*S2uK1uVR4gbc$Dw1XD!AuW`CHzG~n^D!LUw`*Nfw1J)J zJJ}Cu0eONDnP1(9GUG}DVM$Dl1x3HCrXutCs=c1kFmVS}fK4dL@q1AY#?_zYf{a z-X$uH9V%b=>z(+a^2B`QO39Sx5WQ-eeta=c+74K+<-XDz19ib zXz2N1{N>;6!?W~(RB|=$A_#dbt*P#l##=IaEazj^%S?PFDB)VcBH)rr)5Y0XuI0T} zvkoYwRjzxrLZMP@HsRV@Ea3{@debkJa!6}h3Tj@#_uOhOdB0$K4-Kv|>va-OS=ntBZzi3b1Lr&-ImoVqYrWWTk5`Avs>K97P1o&(;g77Y8Bw*{&JY)31 zCcOGOTd)o38uZ;Qlxs&^O)Sc~2MqAF6wUVWAW^96fIn53_`@oml}YV!6Opdn^(-7t zS8CPMy~B`kl!AgymIC&d(gi>TM+}ou!7hBSDJ)5rM)0&j0u=&@*pFBF6>0z~;en0O z1h}SKv1@*}srjHueKEDBE|LLb`OJF0Qi}PN+7-{4%1C9qp2_KL*qzjEsAgEuI@3V( zAx4BZ27eM?Y8YPiwer$sL!~twlFR@=VekoBk-7=Wa1cI36F;B2CPB-NkrkZ_YZ$_g>T@YD=EV$d6S3=p7vfl@GilDm`k_FDjF@0 zw8DI$r7CTgu#mkqGvg|c0IvLzrNsG4CBj-EqgYVlG;cip^%`RS#w9VN!@-D?Vd?HU zSZ#D0rZuwNc@g%fY0=GNXSOdjdsks6sqC3Hf14h|jERpa(nLxILjl-RUSK*asnbau zTvwtdFT%*I-n~5zQ@?-y?;4x_ZskD(G?IhdwcvGnLEH>Do$kv`fzQ2o_4u3_hZ`D~ zn<0-99=COD|9MC~nt;~KR9HBiw&5=D@rmh-Q4qai)(4roMZQ(5SAtpz;y|HZXaPfO z=Dkwj`z^oHEV`|rRri7tV(eVM;5PG>oL8$B@?I^d6mq#j#f#%@$onODo9VACy}fja z`uu!{=j-2sjB;upvFC*t+n-;xPn1>No;yWZZSBe{YMw)sRqu_96DDR?y0Rc( zm@NGkBZo->b_*dcT*Ei9#0+1rLME1&9NV`9RIFYFQxkOYs!QI0FykW;+%7Ryj5q$| zK9m)X&!$@gk1M61;ZpiuYjV?5E)mFV+sh4~omkHJaua1kB z%Jo*h()2yARn65}^<1S~sx<5MR;g4&wwq?YP%e6YL~bCTuQ{V&z{!QaOQMwT%S0*Z z)N_y#a#NIjqo=>MpyfS@nGBuD(%(Vd0bt-1N;R6u9pM&SzDud#MFF5C-bCQ zm(Qz|rP?P>Ee0MqX+jCTyDwOEdO#u(RdiC&7azJiqoM;izfB>Td zckMsG=!padl$;z3Ig+s2l)$azZvl_H)~b%i^wYnHSfu zmEVXTFoNE#U+TG+JKF=rOV&x4*N+-<*I#mL~nK-!yZ_D9Prrb86b75=iqysl4Rnx+}@uZde* zJTNUJBU!h4M2Q%BGd!zJm%HQUd^pP@b8`P8SJllUL}W31y;3Ecq6 zrt+|mzQn?MqVJjr9}R{ZZeL~W3ZJt5S>3D^K9#!{R*~kCZzh9Q*LPk&f7aef`)Py@A^cMqaSoFj1MfA3K1j2r?6qad{=_PRFY)GuZK@0AQLz>G%3ZfUsU! zdwYm_P1mJy(-(;_%^b*`p!*x_48A;F6__kWb_zolY;1R*X8~fWwU|@;LC$Np*IwbKsjj=(3D$=Lf7scW1aF*rJ{VmZ54KK` zQ$5{tHR8YYvD_Z?;3v@W_!VFJbqZPT10?6CXkhljmjcR9e{?F|^6}}rQi#>i*CQ76 zrAw-%sPV4UzKSf9{wf>U@=AU&-$EjQLb>X&;TRl|Z)AdS>9P?3YOl>vu13oIZJEus;fvaD>@YbUoj8NS9G; z1p_!#oubS&1RuaHjT2$9m(053Jcn2u+)S#rFLI6b$BD#>a)3+O5HU$o=bDyZc_c`*y zLVvT0t(#)+RG0od^s03!u)+VNO{>B7mu0k;Lg9fLEMCA743DnOEyCnbT-*cAkg4UI zkqk5Go5;DlBECE(Nmyb{@al8*j*Zrr%RF1YQpk4f;DULu`x-FXuKKz3&;@6k8 z@LHzy5iPY*`A2B|kO(JqBM+Q|I}a!16&qXdpEJ1dK^F3;^zsD~_vqqFGz%BEW;h~| zL9x5>dE;Qa6pDmYS!LEz)~if1hh_M--4T-~)#6J$Zr4AO0~Hs*eWip-7|yPsq+oC> zTM)1@3M3}7TOlz?8lO!UARWP1r5qz zv(x=stj8bd{&QIj61S*CJRRJqs>132NM?@;N|UrHU%XhrB`@{2It zi|&b0wd^&V(i!_TboW>>O;ct;{lVxYmt0wT6Sk66Z-ME1Qq>h{pQ_n$m3}gLCHOnZhlhuwUATO2~UO3ai(-R(LJw^@QRPb3Z+is?)IK zFN#U#@MI&afmf}ti(bvoBT%+U5kHk`6M0vFxR$GhO1_BHDsG{U?D)l2wOp+ibH!Z2 z$5%n2p3g;;6CkUH^a{I5|2#W{JChTB>Cb=8a6%ROs>fFtZxl53ARfAi90_65m1~4e zb&WLk3Q`fsE$BfP*x$ful=cOoQ&Z?09y~Ri-wX-a-@^kz=_fOBP5>C2TafK3HGWu< zBrOR^h&`j2pYV}jwx)Hv2E;auf(^=z0jSOp%9*DLc2(OThMFP{&F8DniDWuL{R!m0 z#ux?&dSipM6tWh1V30x*z9*2NdV?#$a9MsedM@+;u&ass>BC&<-sr5z%i@zIHCMvp}@$ay{8IT*;McLDb?(?s(}vG_d8Y*Gb?K zX{IPgsON5t<#uL)Z1ke#n_OQKl+M6{ziRSU-KM`Yu2aV@fQJ(xqTg5=`|gk@U4e}_ zAyqf*Mi-v5D(!yBP;-oFw~qv%0Uvn>G_@Cyr-lMv0UnZb6enZTC}Rj>UW}H%=nR;T zLYW0FVe8%$bUX$J7vP72Gu45x?wlJSSeW$lGn>FtoeS!CqO@)v4CR0U7+T}AO(?L6 zuR2ic0cBw-FeRMvAK>Re2#8h4^pHO8_5dYwlbKXm3U~J_X1JEZW0Fvl4-<;PBcS0? zL2>1g?mit{+8YynQC@|BdPG0OhkH@T*cjq5I^dj_6^2h_1r1?p>aCHO z-jgQEC`2s%9jN=GbPP_{Porb1r6mqq2QMwPh-43NW`5_R$45Z^(H+b*$KW6T*m8S3 z-WmZEY6rb7efqA$gm9|uoeKJElhG-Z=y)){oGMlj4OOq=w$5sP?L5`Ab{;jY5rJ!+ z{+i-$kF^I^uxi)HriuF$*0{|zYIALjFN-TgGOhEd_2J)}WpbG4hfGH+#Qh6~S4aES{_iR71u~5C_lLOT{`jhM+zd4TKvDdQ zjdmP1CNCgp^0+nK-M=eI>R=<*o4+K2ZW*rr-Sa+igs$FAy-*@K7GI-`nK zXt(QiXPZ^@;sBh_TivcI6YR|`Fw`9HuY_Q`(*F+fi)^oNBD*&UvU^9(;2FD>%?-9Y zy+&-;tmB&i-3|Lb#Y_xP^v_zjEj&d>u0<9*|9@wC-ikidOA zZ>yt;3C-3-8FiDi8?D2|L$hamtU|L>zfgBp%owI@tha@<+5vKDd-+@)S+a8!T2(5$ zRWFC@D_XTywN(rJT(yLYD~g3$u3XK*#kP*m{c5#RE+(+vBjIY>Q?&OzKV`V%0xq(f z0q$e;LaaB3xRz^ik(K&xM5NcId_kO775Rooc|!x|96VRhST$@moN4>3+0Qi^tBTOi z8wm2ucI1q%oV~rPVgc*7B8TD5-F4ZxY!ZF!l5H){fKl6wu@EiVCzk;*7Z8E4e8m`eof6c5M@ z#BwEF=ai~#ywX-SKVp>OqpCv!N1aH(QL3J1zyP7pZP)Z)7!R!5E%Ft*^`V(q=eY}K zUVQEJg|n}m6Yz=ii)X&$ z%()BeWaGQI64u+z)a=*ij`G#%^{1fTF$94Nv2Z1a_LM~b$tmQU9$SdjbYShIWPdIiamvT?!v0jdVd-kFufvw^$&IYg zUxmY#bo+)?=QB?|Qs)15A4(_hfy8(!Vmg-@prcw#DVYvi@lWFpTj6`9#%B&swi1v0 zYLHP%1+SK`dTvmwH46o=UMUuWdeL`_ZcuKy6!`Z7V_kf*QSD?we}8IX#eY zCfGnClu-8;P2L`^G_~D+AJyFjibTX31#JxaZ+(#EYG#n7P4rvhk)$r^)(B>rQ>IN5 zYw1@}<_1*N?~j}<)*!IHe(Ik62XFKB$a*Fl7RCBFd@LE`&`5rFVw&A`QQv30&(z_) zR^BflUs$0+_bRt4`EsqCYnAmde_uSxvNQB?!PF3;CFBGOPY7hX(&Ne=DKJsLq`a3@Oyi#zH5{P3 za4s@Ruf0AB);vo6pr2|z)~Zi8vamA#a6-4&wSli$wM_4{o=e(#u}dePgI32@vvomq zH;ue+nz%V8mBOvaC5CL5H+t|=>ynWGuY%JXh4{y=(aNnC9#(QhcfCQi;z)OlaB~CN zx}Vv-t=sDR4XYo|K1|r+y$?l#_a>BNYc6a}`N^!%rqu6G%sE>{Oqe}nGZg1)3F*dt zD9@E*KrwOq@~)qJEZ&%^7kP!9^VRuT722e|zx$d%%ePPbTn z*m3t#d;Zdeq2Zl^J!t2_)ErSQ1Yv|~^VhCXZKm38M147=dqG8+3w%>UHiyVUhHoCU zG(DML#1!OM43J!JsG@qwz~VgfjB|3-A6#km+)Kg9$KN!x9KZ0|*%x0t^V;#yE>AZU zA{CKieFeXdjg4SvO4*kfQpO|tk6c)JMa#FL`adVy$lN}F>?q{9j(Q~05jm3RL0Hk- zjsrZNi38Y6d~YrE3q)ngG*CFwZa%&NRsLfUm7lsTw)uT{ut&p$h*YiQKa{5Ahaa4n zru0(I>$De{`n+2$xqdDm)LPB|pS^bvvh=v_!(1W&5=*>a#G4lb5_5MsGkYKN1i7Ra zAV9A1Bz9>+LcrPk_-5wbotZnFJF|-g3035BBFVliWIuad0L7UMUia(5vNp1R8}m<`Tfr6)7{_e-aEU%V!>b~VrIUtzwXngPj{d9 z>A>=ih~orWY~=s$qC)RleFddNT6Gi(Nt*S=4pJoHZtkosbz8M|XQi>SmJd71&&Uh% zWv}uQe6Yv24w3GN@f`?G&=Uj_EYScz|L+_o@JyfH9xuN9a8}Rcu94n?tGzphBeA>x zHLnc#BpW*u`a?OXU6v;pL6Me*t$8TBIEd&01oV4j0X_3=ztE}w?-V=r%eUsx509bU z!`3#0ty!iK!cREy&x)7->_X)YMB5;`4RY>VO#OYV5Q%zy2{95YVBeaJ`L87hEE70? z9`^~BXPzE^^Dkn)!>8dbFi()?k+}+D-@L{Ltfit??qGv;x11RODU-}E@;ei0J z3^kd|Va+Aj7GbZ5hM8lgpwpNf?4QXz5)a{ifQm=22WEq^a4a{9Mz<)gVAyB+PM{$w z@J26(Q>T!p8&MOIuKU!fms0uVN`DYEJvtB1+kOO9 zJj=&d@o>@~S=~+ve?g_rrysoe>^x88lsd$Itj+mcnKmcgFdK?)Z=KIW30i*YB14|> zuUvxz=gXDW%GyeOxzT8^cDi-wY3j`+X|(IDr8QK9X~3OxxzSl%+o;u6msgjN(WZ+y z%2mXvqqt12wA?L9ULUCH=IEdM<8M~bH&%5cmwnLPdCXQ>$_z$bYiAz13%r950m>lKD)M=f>I^3*brRp@BW|pn8DlVUo zPp>9Urlv;n#mMU_6G~Sk$IGB2F}3NGF|zsNA>{%39=0~q>2K8kLf0|=z&TCDj~t^K zKO$5?2XlBBzcXGO7}-Y1J0^sx*r>1G(FftPknehU6{1{}L#I%wLw(Yb?mYY#q2!v z@?V%bU-{_KY>#2tjz&*pU#3)BzRT0%>Pue zN=*BvuGK4ZV+~uep7rcF_+NbawQq$OrHQcjU-7EkyEBXt-MjM3#{Sn|dExx|vtN5* z;y6>TTa;&M^eLrE#CWMESNI#?d?rUl(mF<2S-4nZ9MY7-b8%dn(+de}BDG*yM*lC4 z>-F^)-k`en$`&$Fc~w1isyU#$ei3dV8%fN+c!BmvsCsn?eN9K-(}L~^&?URHXfgi& z$_p@7J}+60;yLugAmmOt$QOXm%SfJsIty1ThTAUGy-a_!Z=QTva7TBhxL3DOnTP28 z!mG;UVmm9>TacPcbj#JA=KksqwzpfT@{mnpg%tM)IopDlVM=8l_83yJE48E^0fgG~ zC?vDnZK+PYQbi85lT;C3+3Iz+1aXR9+rTltK2`;PaH`8CR-pDC3sRPZT7O}S>e)`BpzhQz3=-PUrujy&lbZPcc0 zc9%9*mK*hrS_5tkZAe3n#d@v2*s858fyNVPs96`PxsnooAp6|vXzPPiP5=7eS}QpP zy$-;V)th9nP9BwaMgPA*F#nrNrk)mPUEXsl#jN_I>}*NN3>^?Mm_{|~^b^%~LB)Gw zuXlNHu#S|1s^y6~D^zY4XaJ=;;KAUqvla3$#ah7Vy|CKxJ3qm+$C|WDKZ+%*pyJBh zbm7HLZ?|gP4YDkXl1ytGDow`OwRc+YQRgEJk>^Q#ss|``7V;B}|@M7-UV7 zno^e%Fq)G6bccyR_xbt|)%-+}`FW{lw7fPYR$Dw@|@w_q>wWP3`&_~atm|muY zbPr~zB%G_%Lj6v5DXxLF3YgE6VJygb7-2S^&TQpJ6+Y&Fg$F|wr6!??T*v&r2mH8a zRX$5UI_V$T%vdFIKiL^vX8sFFVv6#cV4J028rW))A-fpQgACGfVK(?Jycj@ZcM4&mbAcO>tb0)?4?t%ywcsZEG#<9 zEo^-(>UAh0UB2}QzS)s3XP9m##b#^}5hclb`)YOf%!-uPJbB`TKLO>-?BP~Y`lV{h z+KlSgHo?*8;jA*(#`bz#bP?xv4@bE|U&O9_(gpY3po)|CQ1g8NRPMaUhLG{jSZx7@3xleHSi&eh==U7*P2U=i|o|kQ;B?kt!1z-b(qeRrFH}5wL2?F zIFRL2?)Gys^2%{6Z~h_*r>PEBPQcdYCd#+L0EBe8qJD5Uisj|iB}Y)B)@-3-QoQ$| zi)`V86orU9Lwtq#HQSJ1BpS(vp?R*=^)F594adyH3RqOZ_mEwdjh)ZwywL~(fPlxcuc2RnssMK&A`QCtnFkooh}DO_vO zH>G@m!lpe`s=Wp1ZH*7mxwC#JnK63v0oS;g1}3@7h{)Hzff}y+c;A*nk5LKF)Kzj( zlmMZ=XMFFvMGu;8)DB^qW+WbmN^Bd&GS8#RC+Eu30tQ@`24Uqi`co#tsmRM@qjk6q zjkM%^v`p7f&C#9G8S%obz=8JO0obxS7Zp|qWDMIyUoxOf@A&m8^^UyM<@$GH5@Zs= zX=neAG$EshBL37!lb*e*Su1-B1jJQU4yk1nb01y``u-ol!(V~8U64dcf_mSv zj@G-l+4Q5dWe4Bo%>fb8IKumF#Tng|mQ~yuXP*MJpGg^5gwCaoEzX&6G?SLv$-xye zzmnSD=v+=lIW3@TmfEPO2C!RE zn@r|m;ao&~!eu~DY}?bler zJb(YzJG=sB0@scMK~*lldheh6bKm{0$RK(Ts{WFn-K`Gq6l;cW0ih%y_NFV0R`AAZ@6i zmC`zFM_-f~55Rj;a6}7vQb!;mf9>8T+d;J~$+ z%x1fzd74~e6h;Wq9p&W@z;z<8dj-W;y2GvB#sS26Q4-9e5>|4Md;v@r;x!^HkkMF& z%nZD8JTyCKh3cIrAcucj7?cP=mWovX!Oso%wtJ3!N(~{*i;r?dxnYRx?1(%e?%hfo zUkx_c{{V;QHf-&f5c=I65*QqFL~o^yqR*EQ%Lw*31^}*FU_-AY(6POUk^!8RQJXsx4t908fTT0zH(m~;o7 z;R1@CfkBfRCg855LQ!%Wn3g1!^Gc$_(|)%0fGxr*8Kh*@B{-*XxijXOnooM=?IF-8g&Iq%)jRT%^( z+6u}ZqqrlCT)YAxjSx9QF!PMg;aNW5LgFiwKPRe%<~2=c)~~SgGH={D0*}gOM2D&)37o8~>5MC2rO^ z{`z1)_=L*#gfcTb?US=`6ot2F9z0t}Aw#TFJoZU!TGkqyuhsGYSVs^;3J*L-!rqG3e!7ji=AN~46tkm;B)3UHBb|A;ylEm-qd$EEI|{{ImgcwbRvvT?WcXAeaq9gO}&d*0pB2c z@^pKx185bI;SBUH-Vq>1DLn-L;@ZN>LQ~l^zulpu1Um;xCrWU*@pRT%0t;6q><`O; z(@NxRJte`$VWiLn&XBHLMj%iggm@`v;rvraf+w03aS#i#h0lonVbUQn$Ig?zgEMK= zi;h`GBWV&vbJX{8GNctIAJ#LJB6AyQqoI?4|5yd*;}8ggRu~N-WQE;Jz~(Al_#@+c zO<~+(eIZ;S#1=5_S29{PVUqoeXu$$-086hPf?^!Dd?zBpxv#2bnez~>y~i7$hzdVX z58Tn#mDAv-=q~JNxl@Irp|>XKMD45xa2w&6ITj3@!L^SsLKw&PQwFXEyReDaX2ha_ z`>hBa3L|A}xglz?-8eFV~aoe-g;WIWKUEjEY z!loNJw4b<;Q_eh)@^lbz3vvevO1{BgizT{l|_@^9!fZRpDm-RPg|{4;!PZNOE)Iuke3C%Kl;dE>&08tQ{wJ6A2z z4=aD?S}{83T`HObeD)}`jaF$P`aOf$=nasosRh|>^c)sgeXg4;>?^n2vI^VD#(`3% z;hmm-#>uAEJvtJsEv^LIG4@wj<(~3G$lJ1Ozooj$7~bPPGOq+kH4+CpvkuxupBd-1x)Fy6oZZ?1tLd^{*l`gQzOiMpMk3oUG9h}LzuqSrPSXS{G;PS z<-VT=s)$l!gt;D~w+dPGAhj(D*0UH05Lw(uF^G{3SjE)ncq}#l2J`MhT0A`(J&?8h zl2!0l-|8q`Uw{)EBMcuMxA_#2`?hzFM$@J!8%|@AD2c!Ev)N+{(pey*Xq(8>!+BQTHXycI*w?$u6REw;*td5-^gpRQXw@67%AC z%v=-^t(zR6p!pCwBu0JV+*XAySuuJc?2EF-i+Qwrh6>(vE0_}jW6pCX+K;6yJ{{i! zl@qVRX#T8n=|X2vYoJ3qdiirB($b6m(1(->R|ECv_TdgRxV{E<-o&o#&xEisabiF! zp#-59qFDwY^c3)x?VHKU*uQbHV*RV$x*B3tT2lP_;}9`w=So8Rq7bqEPkI!792_RP zp_?fdaIs~gi{Q>2NyDt`ek~xZ2RB7AAhToxMryg&i!ecp%;aDB@3KE+Y6|nYQ(3A3L zr|%A~3eob<2+YZFhG*#6_rzK9u>bQO-Qhd|zlOP9N9^0^Q;JCM{S*F1$7h}&AgXTI zaav;H&7osH!jnyiG7qmlC&A|3A#^C5f$DUk?hyVV#`}$wYX=p?bk$;!6F4#hbp${X zf516HE+-lRuz1Qbi2fH#mUe_{1%zXn2pc5)4xQ~p&lSoaXq2T~XYfla(95b(A(}WK zf^9+jMBj#oRCMy_!AJ$67b?|B4h1DIx7Oagk30*eE6PWZv3!czB1(F5OQRa6zzysu z;^Q(AH6&rt8Ms)}h|cv#-ssc1 zZABC8hEF}hpexT)Y3#|w?elC1IyRnCITNB%(;83rE*nJ^$!?(RQ;hYjxCuk~d|ks? zeos|LyU{WaG1zl&sQw!J3yP=IeX3{KvF3P(o1+{_Zp`#E40)a>ty710yYMN&Zo^^0 z>qZqVMd8RL7{l%8u)OhTfWSuXC0kD>7xB5ZkXCg$OP&WtEt#TK!)WyF+yvdybC6G8HMB z#GMr^TMiOOLdR-5z1`E{C6CFwly7p&o1{2EzS=h|R@>tf! z;$XLgbNNZBm8IZ$shMT5(O6AZJIJ?Ct1Y75Pt*M*X%TqlL6+JPO{NiTxsUaETzVd$HvhcjUMA0w0EfFqs&jPuiIrmlLtT8!+7bw3*9nw{JmsbW?c8zXBKB$GtYm`H-^oDSZb?V3p6e&m# zg&-8T%^!*nu*d^Du*lKFh=1(u_jX#4VWDV)Gr zzitLu3dfCj_X^rYXa~yNks~hh?#sB--_cHQRY4v7J$r!?ovz?iLOBBZ^i+$w?T_v= zUC`|tP|<5i8uWhu>joDe=Thi>-6Q8yR6idee42BddD;DuBM8LE;8m(-ZU0r@$?e;N z-A&)i(=Xd!Q+0E}cXNmC%6DZX!t?p(NbJ;C#BX%f+6f1RPBuozkA%MVw&2ybj^J(N z^k82PpAGhCdB@b%co%9u(|O=S#@Ur9 zG=2dWnj;ge$+mo5y};jaf^pWp{YpDvB!!fC8m0AYmdDYsk(W>~wa<8rp1Y3F2VpC~pTVeT}vG(ilh;YZ*E~RG*C# zlZ4tM>`fMevbO->i(>!~R82Sj{fYvTRCe&fR~UJ9%*bU^XaDiE)dEs9YS9}Ex-w?a zlIdo~oS<|&?d*Cg0Q*}Odz)@|aAIF!dq5VaRad z%%aBf@)~yIX`;mGx+OquL|+Z3>DU^lx+b?s5U;PGcu=O6=J0%shj%2eJbi(IR2h5hIXOi4BB??dTG&`Zg}(ZO?gBru_# z%qG=a>WM`0$r*w+`|egL>PMBQ;|85LSGS(WoTq$c_v~@zSUTL8`K1O65q}8gWz0M_CYZI<9)+BXrwdHd@;#6x zsDURX8od?A*m|^Su&v)`bUuoR!9mQYnSB>!7+}EVasPRz2N9aszYImFXXj>pqATot zdB<(ygW)}lwjXAFm@mPAO9d1Q%qvI-8rkcoBTa+pm@4yM2Gh+{N~!`$^%5fG<}M5>8h52PcIsP?p*NH`gMXn#Z%5%HjA zXgFsbwVagwM9CM^*v%p(q_hn9aZ}A<$fzm~U61GHa!Sry&VyL3?|~##@{uGNq<=|$ zu8}eaXk<%tA(fZ|yxKpVZ960i?wcNwZ68t(P(s!*jQ^Ut>w%H6B04fJ}{|C-a_!>-a;Vm4=9xky}9gAo^BzZUeTtxsL9$W zmit7Dj;k?^HQ%u#{an*3POuxGwOkn=TMUkuqEPT$Y%w@-VVWF;H@U^&;he=li7Jxz z`~L*iO4UEz7)4wEfA<4^tXYFP3;L5At6A&+E586YK#A7>1TIIVuMb>d*1z44^#SU~ z`gi+LKGui9;wZLX_h>&PBY zyUlpj61n=wk?X`KoLWo-qX}v-$&A8=LEFW@O4U)7QzAbI?*b7o@4}U0_^q2v=fRJQ zQjK&7v8E(FRwPvUzEu>C-U!StS(YTK^J+L1h-D1TxF)}HTz-RuB@~ir=y6?$M{-8M z_n%DdQ05_xkvR*ae`zkN$cv2M$dJK@Ebb=uAmek*c;Zu87|s{+=yCIa1DX3xKF>@R zPGs?DSsyd`@}y+n*+7*jG5e?Wtgi1$rPLEIQ!rMBNbZ^=@9xw+h3tgkJig6iT1a`<;^ zjb>-L)vC4DRvR10<-gKutZgi>G#9(e_4>-va=Y7FL$d!yGpQk81Q)jdf58g!_7M{c zltlf{OhIuJYo}_Lmu>%L9Q6+?6!N~x0aAhXof-X5WA&^)5L-bU*_cnSSUySs}>prjk=)U|R z?VKTs-avw>IYE=rdANR=83Gv`sKsDUatr$-AO35@NB}KyjG8aDDNA<@K2&3N-X*GE zTom>p2Vn4>V^0wn*A#Nr|HE5MxVepCSBFE2bARV~Tr!NV(MM)?mH~Z0^iFFRxe7(& z59c)egwA^wsw5;nUZ}i*sA?#Rps0U~4rOmwEvN5Rvb|?|R!Qo+)j6H)&L0j>GbMBf zUX!Qm^`%;^v9hwb)@;mwEjeJmnECSz%1OHO+_dvA^4xnGiz9VA<~4?TUV&Xpxr6+3 z9}9H{p+}|p-sYw{KK-S?z~ZeisjJ$Gd5brh&Ki1i7%Ij2m0485{wMSBFoWI!fp_qp zg^iVNIq*CZL%U^(7l#?ekSbp2(1ZjT+dcJRAt{|YB}y)&g+&F5Q>Ws^EA>s9n?Ocn zs|q}l`hV(YZn1U>JJyk3bCOb2p6pMZa_Tz=?AR#>TYY~_-j5&2k#OX{E1-le zcFlF6M~}oREq7$>C4)Wqjj0qrrU7vC0#;8=Q%3gwCeU6K5pqk2bOq|e3d>~@Xdpt! zSof%}rB;_TqQ?RVWK2~9!4*$GU(6sHZ=46z*K@;7Rd`_RcpsP1{ou;z-YCzP3%}!~ z`s4HZ*j4HPa~cJxe;^!SAcC81!)1%$&NSgjYl+MU#!=7n1t$D%MXcr7)6aRPQ|}7L zT9TtY5!p1$oophR*+x%!+(hrWM^o?oS(=$7Gqp1boJ)t>h@k0&MHSj38l%TiAV5wXNkyxBIWJ^zm~KggL7-K z_THC)x-H3uEwv-SLCp%)&3X{&IHOlKjEB6k^(GEp6X*c`ZPq3@OuN?15zvL|NorHV zZBjCS2+!rGh#usvR$dbq9SI3YJKITaAa(X|xU~HzyMNwqF5UZ4Jp}Zx8Rt8U7iV&1 zNGNo9si}}y2lF_PNyw(cLmj59e<@10;KA1w3Qiyyzm_joY7|;_E9okk5I4}!3bK@X zyTr~MR7vumKI6h%gD=Nib8azKgnjJJ(b`Pn9GKVS&M}QS&hPAlB1c z&MS(C-`PIe`rPQ*iOwCiWu$0y`txU|QXi>`Y#MZydwkTE;MoBMSfjhzYBxIVPJ3yk zwz$-8)@rM*BxxjTot4Fn`YIws+e=Bay}Y#AUTv>6+AHk_UUqY8vq|n8*W~fhxiKCe zwj$I8h|qBM)vrc;lAdMIzxj5;E|xP&S{?Ia?VDUT*A!Ap#1B*$n=Zg?%m{vUa_fblAlZ-8>HOGVx3WRIPMdv5C-4F`{F-gy+uA0_6TZ>o4}94 zpb=Rv_)^$ozfe)}3wsxrD}h6VJ+@C`-wOY(pxT7J%Q{gMb(v8V3DEDapM^n#)hYG0 z@NK-ny`J{B@C`l;pNnG^tvJ47^#|1NB6v60;%U~QAHFHX)razjv-w|W3Eko8vKG&b zil(MQX5pJsUySC)>M{}vEv>GxwnMX4UtVf;mXqbiBC0*qyY1S>VxzWJUs+x3G}ctCdY-c(YhY86gMK1~gs}!mz>39FPJ-Q@4;JVD2 zjtt+TBr1PdY9`GfrH?ETf+UI+7h!HFdkViTX3iBT_LIHstMh<*3w|r<+&BNwk9|A4 z@R@|Z&Y>9;OI_D?3u$-2VGjo#M%;OKfCAtcyb6FM4Lv)I$)dbW$)k?^!@~RJi$vIe z>|wnF)xDfQOG1hooqujHKv7*z7wdxcJJ^R~94t4a4eN`~yFFM&I0ZCo`9xc;FP8~S zJY-USHaA5A@Yn7)U#16`@S=N&d>V*&2O@SYTh;HT1bLsWDn@|+lvIq(Bh=&QM9CaG zdZSW#Yi5YVVleNZcgYq!b1W~X<}#d|)>hUQn=AGC^XzHK<>Sp%*&Yb9CQ8v`IDLw(MwWJCpY^)JSBXR@Vi`HC0Skk?1NhxKdMN$v*h;Q zkNw?>ea0>n`;1xNzL3U@xQI#iQd=YW0|VkG_RGmqbr8a&M3=j)D4s|-9x zw27AZ8vUgV>KLtKm4Gj$P|Ne{I7&ca6OQXQ^>S{=W9k1&$NX6J_aUhM-sh}AOHX<= z-|IgtW__?b6I^@PZiZoSQci>I=oCBSyM9mjh}J$lGZv(9 z%^4JPZ}&FgdcS{lwxR{wk@YY17)`|2m4p&%RtifZ4+hwhs5|FQQk~sHqRLGi_H;Vl zPrAdc9-NI&>HxDyagI7QUw{)nJar@VL`5n&gk(aWb?U75-aBzZ#7#jMd@-^~n*1E2 z;30T;><(PWyD^i|DNL?maIgjD$xb%e{xpaB-hAo~Yl5}XLV)#Lyk);MQU|xiYAE6bf zOvn^>z_K~U;-PxR8kAy!iNdAel_L6UC0I#=ttxCm6?{)X3h6?%RmoAsNnmIgl-uyC zKKt^^r%qV{0r4S{m<)OYiOU_c&A1g7Mviz&t^i7iG<5lv!GII6=HBm(qJaw}<6s)B z2kzMAu=4HvnpzCvnE5!UhAERjbA(&kqA zlV=e3AmPUz_T%f<Vqzs-QL)CizlSw&v@6}_fCwYXYutOmzO^kG0yisTi(yfP+_sa{x+<*LJWrjeyp?iq zCDjl&KwYw5fE{4(u+@{s`%xwm)hWY>-5(rnkPZ+wj(*wN|%i(mfYKBlaAZ!X33cUTH!4nl) zG$98lj#wVn9#GY_X`*YOmhZBK6t(KKjhI}lJb&SZlP7|cKg9QGIaJ~B=nBnolr6K_ zwozzp_bZ;%>9`-!-pL9Hx;iEKBIT@PHFkXq4Z7dK*n_mNzd>=fg@9+eZxbf-&Q?pt z=~Da|Hh4z`T<*GkgVU;;bWkNA+}0QaPnj-P(9g3S%Poh#$2a(h!vq>LgG&?$FiGI4 zJ6r?_{yp1W8%Eye{cX4vbcr|??Qy*s{Cz8X-Oz{aFr{o`{0J~eZSaOvsst07F8Yc1 zRgYG?Lv;&zq+ucKF3+IFjT6IMTOvc06@p6teyj6B~ZTSq3x!WL?5J59O&^8mF5m`Xdw3V zG6>vqWGKm&2!kn(lN>MCuR3c~V>^=fUbN-;r?BM0lz!<m%IxQXoX^j4Gs=CPzNhgn#R1srs1T@g4gVEE)I`R>N^ozN_d=o769fAKse!*$ z%ZHL|WupZFj8{+b!3;LhZm3jGGN;tpA%`JF`0L{eGRNxsc!;FnPYL#Nc89wLx(DLP zt!w2wi1qG4PlN>J*!PAG9?ICaSKRH}AsR(Gni1W$(E3btLWS;ewv0*I;-Q3S;C}}+ zygWd3z`I%xW%*~ zw)OO6A>Fltw$T8UFv9&xghN$GzXGW6{qi$UjTa~(a zp{87|jqEzhD;wQpWqC1a*Opi6_2yC+{#=W2?}CDEt+BGyU8}X)&9$}m($Z?P(`>do zEA{1iGo5Y+F+ukgk$tQGCz6h*|1abRJWFne8TCR7p(MB#_fgE9B91#7RP=(-*X{PG zW`VA4yLA;OEe--6+%Q8^yK9>rEyS=WmFb;;XEGN>EZh@J#~s8cCRA}lNdzXiFWhrd zL6=7ll8q#LqCbFuI~<~B7hFqlymg??Z{c3{`cduUv}K#!#ozmKGuT*q36PNz-rw$k zVdZkqdo)0$CiKKv>M2q=@!VBoSP2(6Gq93~*DIdPTL4L{#DX?A|6_RoNS>3WhOn?G zo>nydDyaL@Fy4^do)M`B%=XzKZA}poUeaQ{fc|85rUK781x12m^b{Y(^J| zcEcC>=2-p5$W?wXwkWvubSc7foRAsV^i%Ps(=6~&nnaBA>L66|#)xn-m+UF3V=4e! zVfNQHV1$xGS28<`xym|>9qTayg4zripq_+P)1p~IzZNUn-T0LDQ6=s&=191D!;=dq z&ZGFyb_-0#z;qXBk^n+Xwh3!S6a_SsY*H*G6@ z5`b035Hj&3SWnRuVb`!kz=D-49OG|su1k>?N$5%{UM(So#c4q*vsOouTdU~Nw*}Q@2Ql(gNS*dOS-Oj9ar36apJ18?QM)9)+J0 zd_!uYFVSamZaVTdM%J5tCb#QN=00tVLzlM1X~AXhpxzHp=eXCh%9~#t*X!#qyunmh zG?)5y4I~tI-}OM>LJ@&eeenVX4zLJHZ|ZlNq7c1oa1M}!)UKevzw*L`H_knuE5g_h zgB%_zKED8bQp1De`)b8-+r{4JxgZRRC(jt%pY^MACsIY=IPR#9k8odjRiD8A46Pq- z(gNR2Ek@TXb$JdV3%{PJ>S}f`UM9sg||u-ZqQJTz$ah}tY;uGZ~KTB z@Ao_cKcxs%Qb5^4^f{D+j}j_q${`}wqS;ia#V{5EzeoL#?$lnLfb2ZbGY`Qq&q7{= zQz2a}g|DKa3|#^>-5&IEP>b-Q9}afu9!P=_#u7S+!1&HfGBdDUFSPJ&v`=Ug9D>O; z<&slg81P&@o^sgl(AZ-EVx!+_G1-Z8dBEldXmkKRBgNCxjT7IpCvSEnUc_$e_vFPC zI#BbMXxo8;6s$=aK>taqM_l=VBu4j`Qo>Y@4!`;5ppsw8-8OT$-&nQ`?3?gp;H#WB zr(n;C4T^VlqZDR7O2t-ShpMzX9a!7s#`J6*`6z5McRC58ciF;`mJElL737!=G&R%v zY^KswRPt`FMQJ&}|8ieuIaVwI71dRhNl=0tTHEw;YpqScP1U(J^AJ=2GN+!SZqKpUsT7kNK5#fn z6}0_he>mJ7bc%|6jPv%l$OM^%Nx+H@8}cvl5D=DBys`12XpGNLJ6G*24P?G`MrV3Y z)`x^=-&;8BDuJ@q?;eK+3I=1-%O;|MOkBr}++GC5Llj2hpg|i=Fp1$+snRZdv?2nw z$LJXA|FS=P?{p zNKbpX+o?jWy?d~Qm}oLh>rj))*W|zW;3OQ^>;?Tfa5YkBre5WEpxI{%8+#I8lw)?I z--JF48YFirL0GWGxE7+>=R9qS>wj7wk72Qbn)TkRu=kU%R4)nZqqKnY1RT zhA76O%ou)!lz?;sfi4Ue@}#%B3z608qNZ-U67(c&R8^(1nEw zcdk+slc+w>JV>agnATZZn$S1G32eIVsAXPX3a?*m(q8t9cp-7{xEcCpKFI_m3~@)(qo{NlLKm6!@jw)J zBL|+K9z9ICLDU@v5rF3L>o=)v4jC~nJjrB*b4#*4R8laPuxNd&46)UM(?nO&lETS`WOTZ!Lfwqaf_nuID{22`X36U4JqbG8g zgx?5wijL!LRNQeHJx|ej_S5_TK=Zn$3x(^oI%jwkkpDmSy1_+L5EdW!ZUmt$;RkfP zxMS9nIIr4aT*hV00gQq`{=3xOl;tFRf?usJHA#=6hvuP_i=nGBq1-;IEE8tG2m3!{)A|qmi@T4^R6cXGTw0FFAhN?D3zImGB?sXJf@|#>`g@@8cSj+T0iGD{C9w z)kddNZ?!hMjZQ6DuD804WU;&2t+g86#ny7Swb5v8wA*X-)=CY=_LWX&rCG0cHt9un8YerucC85hsj8#Cmn&Qu1cHF5(gpEgQ!BmrCY10htY|E83$_o1R&PfSDHFR_hg+( zi5D8?p>CzJHSYYuLgw6!Q}Pl+&T&Z3blG~@fS_KbBiRD+a1Up1apNxBh~@7wXanY) zw)0h?CX@U!_KCC1_(UHuB}FTr>)IHIvZ4KZ4E^;9LnHV1AuLtM4+0Ju=I`x8)j?D5 z9K#di;sL=W6q{UD&vqefZ`K z@_8VJl);f}E;!QEJSSaa=+&V8k)~?pk-sFq{N#!E-Ya1-N5veb0Cv>s|C)Hb<^4WA zg3>;pA0BIWt9ZAvT%KwrnHF6&XX1Q0|JcpI+C3&f8nYKbG{$bmF?M5{JySGCW#|FE6h(>+J+p z#gL|{+fAoj&w5C1eSy3ajobY{0}0{B|BD|#G3@_q{P@ZKKTtQ~$vf@8`L}<`?=;-} zg#w7(iIKkfKlp^{n~ifEBOIo-CAXYJlb=x)G`ye#MH%Y|$SL{w_zO`;6d%{E}WbuajbIOrszbmbt}4q3=fr)%*_CBsVALEML9&` zS1&3nI17agOs*B<@geYZFmaU$gUTqh^=d=cbqoF|^gNP3)vd%dhDEPDWZ8b~zCofY zTx9Ele(R|4-LyS{3M81kq%;58_ZQ;)-4qLlr&e?xOf=4@VJ9(_XQrv|9IZu5l6kM! zbvbfsOoqDOV^H8EYtJazZg=}mtG#@$ThmvF2mGnSPuYpbJ zFQe+nC5*Lgq>32{Sg=Q4bUr#>TCcno%5{i!^QJNZ$AGs;6#fNgs=F0JY&MBP= zR2{xxZ_(6Tve(%|R+d)~JFuE8wl@}A?Zu^~F0RJT z@Cu%$> zM4xvyTUBk0^}JX#0hF;~)Q&i9N;c;j^}gnD5eZ-Y&)#eK;U0op-#Xlel06!7kfiSt z6ym#^bnkfSTTvXEog(7oOown>CF(E6YlUu1{#)<#EYS$!QWKBe_4Qcq&Dk%+qmFYU zvn-R9Ch9I^-8i+4!HA5%2TXcObkfHQUX^rh<}}1bH2pCe>>O?% z^rRw~gM&&7_`lLG4sj(2$={D4>)(R3!wTF9WdfM0lMp^i2n`CajNseo^D@oM=g->Y zikxZk2HB?|OBJUYgVsCi$vY%g;^G$zH$LX9O*HCpuXR-j zyY&uyyl&8~HkB&8)sR^?>0E**r+kfY zU7hfInU$ zxx^HZh3_!ZTQbX7A%{~Rs&~YzcqdOAOs-0icDO(6kU}u^RV3;-i7@>p_Zy#sjO4)ETCf)1i%{6;nl|u3+Yj6DOiXSN=PZGo6+|U4oc#5TO~o z0wk9qlpNAIm@#?`@%2R5@>7hy&dxUKH&U^vUWs`GGL9q)OzdEnaUckCJN-eFlp|NE zFx+}p&KJiN+@|Bc;cct$!)oO4Bd=oT9pWB(WTf?=dyFo`hV!O&4hYFE$JTPRs zu;Ce`@V4cRmq`{^_q?R0PPcI{pdrIZSUdfD;);!1EZU2#XOn^$)|+IM^pFNVy_UJ|q?D28)$=Uddz*Uzr8%BLo7$pZmk4YRb#4-X07S zo9pUd2am0pIbCG>?Io~I%qVH8f|FYyr9)*{2CIp-4kSV2$;zDi03y?@_S=D~FyP6< zer+3{v*y1Xbw>;D{1M0OspEYec2}52YU?OSk^v8!DTDD3Vhh=TIhtQ6rO(o)o<55w zXG59RQkx5{_@!i<>swCt@P&+qG&-H3P}oEg<4thi!_w6S*m!h$fXPF&!)82xwL&CfSM*mwE-g{*;ry%>jt}i=`7F(o023iL*JIiObVQMOV+W+{+5pY zKz3RkB+KWp4bF&vK&vyjvMXsfE&~Nj9_H*`V`lcY_Wqe%@6b-er0slPbsOtWBrekmliw;@63R3WF z4dO&1TZcMgj_6YczprpWZ{;&oUekEr)$tzA&X5T+4h|K;pVQ&=fsHnXEPkwP4hRD9 zor-ywVFB`Fie7(Qd(G_|vw{jzHdt8Zx)|N3wKM+igHNQN;0{EPzd zL~d5h2@L@JhB`|qq7Bt*xAzmIJG9IWoTvkA@~D49N4-Bg>bt!?&iDn6#ZpZ0yVi}1 z7nmNN@Xxu*3%z~)Wy)FpoQ`**%~(hT;p;H3a+q_k+g;$XrHwRsiA&sJjJ$V+K*fda z7Rn?P-ctRC?lQCCNVg*M7U4-d6cs#!Hepkz(UTfd}}y;G|kLX2ra zi%GOT!};o;n1^O05pF}>Iix6JI@#A#ejfMxnu)=6k$o<(&k}p?*uJ;^bGIfPICjG| z@lql%if2t=3iuKzh9E@sch41vE>Tt;Uh&5OL zBoOWb9JkVy=jpPriyUomMPRtJh}j2#MTw1$A&S;u(cbze3c`K32T<2%o0n_^gixH# z-2sCoVZtKl@Svd9udq-QG&SreLQVhQ^4=_;l3pBl`|lMXcTUd~uGiVu&oO!gM;dgr zK0{O}h9FYCpO@2CFjGG+baH{3M+wtq8_OQ%4lAJpaEV}h;#l_x=&k=#QS#t68jy`1 zLi@PRs!i*M``cWauMzxjzVWhWY4^x#0^3L}!Xf2I1G^!`q-+sT1C1G!-Kj`0;xYeJ z$Ncp6011k4fjLA8=NWeV-qzJ2G8iEhN%51HXz*oatRji=-NKg+wW=Qq3bv z2i)dcx}l|N+}`4SRBI zT3pZ{xnQ#dTp&9UTnuC`6?eXbIDzH`X`oAuzru!;8KT-EqRbcz1zi+&3XW!QIQ4kw zd;HLM=w=829C`pMQ$wJmaE&-ntyW*Cye8F*wA%@Qv3)oO`hD;Cc)ur~^zHCh2x7tQ zz%xgNO_QE(Tg~q1cA|W&L?P*5#Wm|H^y?0#f;xAfNpdttGc9C^zKW=5T+fV(P7%uE z9;f#@xVd9hO5n;q`E|smk`PRQNJAN6V8-`!7dgd!=9iGI&u*UO-KHY9G~?=JZ#Ov5J6-Y*@g~g3`=%A_ZV@{x+)s+&yO9^ z%kARu7)v4V`*LmZztXxG1(VI)A_dVxL`Ua z!1GuUp(7{KkL$YYyUy=0yV~DBxxU}`!y(opgCZ~6i>|Urwzp4;aJ1)p&LbZuxyaW< z(HmUxcv~G?z#j+2We)|E$l3X2rF^0JXy;9q@~zJz1bojA{eU&|d(DaZA~+pe)VJOW z2HmPUHq#j>jbb{GvmNiMcliM6N|>1vJfuh!PM{FsqI)Q*m$ab>6yR4;qlw}5S^@dW zKCVfra^Xu|rY`Lt_fx;iJPg!jhzs80f{Rm#Z8aUqF$2QCn;fU5G+7o{PDvDOM6%s> z0vQ6=r&~`bh3Vq003wDV1kg8Z`n7mZn$GG zJV>`INT4SI^vw)F2SmHX9b}LlQM!sXM(7K6n~+;lS! zF`lT|tSMw{o`9;C&mr?O@&tFJxoJB;W!HDDRNJu} zLMggcVEp|`57G#x%wNPI3+2*?V{@7Jzwzw_L!={kLmSj?xGixefH|}6uKl1q2cjxM zFK!l$+;Dd(bDIyXp2UGLXtsrA%}{lKrOCaToXIMntlLCsjT7N0=|ApuMYp01Ln2q) z*I(=<+g%3AdGWf6SNnxbT$eF`G467kj;2!`n;yKi%VKI8#?Se63O+fJ4ccu^8KT*Yp!TmuI> z6{ICtxKVLIN5A0Xg09W83>ejPMgJl_cd1D!7%;LO6zZ*dCWESwEaA zY(`{->M3!4%&-8#X)pjH&r-oI`MeYX#1bz;mk=rANjJv*j(`;v&MZlwbbGS5l|Z>( zTr#t;HsqrJt<{vLADr|)Q{beh1e_~@S(@N!_0uRtV6LSh-C7E(@gGwqV2ieePr~+3@4VX| zb;omTwIlA$pFo-@L@vP*VWYQMbzwPYGS0uLXq~r0C}ZsIF2|2D0L&Du+iTr<#JlHj zBZm*e8|7FvW&y0rxH1T-Gu8E@z4&m)XlUVtrtU7BjBuY|k|RB->75+{@+9eU{^Xal zlr7ynEXXK6x9ydAtGA+%FMF3i?d^?|9z!gNy~z0FhX%R%SX@wqA;_cCelVdW*rS6% z=aLl58QUc|JQx&V&h|Jf0Mz7yv5k}`0izUdH-{8?kPWPerkyH`V2IS8z(^{J#?its ztf+^ZOuBuXS%u;*GK~uIKsgu~mr!!yj;8S1w={*-Q8ndEUwAF+kVm8Dc0;-uLC#{tdp!CwW%$0{^p{;sTdE*}gorKS*UI`~~ib@H=qh_}r+l zJoPl6qCEBZW=DEaPi$41D!bn9beip?v9y{r+ud#pUiPbtOUdH$(#G0SvXU&d7n53& zB&&@kT=v(JTBpm$8*sM8E&6Yp+bAIOH5=f`vb@8c66O)ze&mZ z@}b>w?n8gE+|WQvaxGa<{fu@Krm!S4gj^ut&HM{abv=4pjw(ONsC9n!#eKz5mL5CE zP-2nR#!C4_JkqgR^mSeRn*iWW>z(o6kIBm;K!hk=C2)C|;Wh$?A#8C)M-f+14)OTG6)#Kg}{%76Z4$+Ao!{gSVyB6uS>0U<-}x(^~!^Kd%qk5Aql z{pZzAaHdu$c+v1+x z@-8V`ho}WJzp>v#R6b%6T%|TMG`YT!fD{2CEQSm_9a;tNbMM^mTEZV1YLJxWzW>*J zSiuR`3LFEMiB6lO8-8DI>N(Osr)YH4AcydLV^zpy`0I z(BVL!n;u(t`=Qq19;OKUa=dM=Z!E5FYG%0Cp;;1Fg!8bf7LD@@o&;|d^5k+n zOsvGdif)7$zDb@n;un?1Y~j8v^`!Y#57=!WwC-S^kUdob88(+Tia;FQnd0l5oj&sr zeLnFGr=c|SuHlocZmPc&6KDOU9}0|_)RovEMxMwGpYHRK6pS%r==vYi0Atn0!7fD_ zT$vzK83pqJ2EOp8%YHm9QUGF)MDOx^%g5qRk-BPvBNkRj7fij-m| z-NXyRwsTqRBBgwhq2v;BCxSdkX(M7ebWG_K4|E_Ash#4V->@|mNg4m~vv*UAxf&0ceK)2X2}6SeTkAmG-{Wqw@5XeKiqKB>FQbHc+*85pF`WhQA*^9JCAmt3 zouc>Sx|7%m4fzPPtI7NMbj+u1NFvNX6AkVjjrm9%*5gm)!I%%ieC&LPzs|oM)0O(o z$DiwyiJz=Pgp`zdwzu^=c|7K0&8W0qk4Lm;lRs+|eAbx!S+n4?=9tgmT_6#P@n`mI z%x9pGefYBWG}zXhA|p~LY#>Kzp>^Sg-km|Yo4+{yX%8pj{9Bi6((y4VCy12uiK__C zDmU1zSCY{ zh29^5Z#Wv&r&g64tN(+TL9tjTOOKHM@}|&_BRo8>Gd2~u7GI6ZgN60=1;UCasGc1q z?@IkSI`o=s)>e~xV`-(ivebspMrX0TSgSXeT8mv&L0?|nXtnEIx^f^5<4UW!)T}q* zleya6Sn8%7F6qxv?s18ij~6M@JuRx&M+!Mv51FF^E&8*iT69s!F}#n8AfFB*r&Iqx z)!pCrTCWEjBSf~tiz(EB{fE?nY5w_2>vF5NE$j+3j_!jwA2I^nF|HsV8sa&Ic~lR3 zr|P8_dp>79L~;?UG@_KJ>UaH=?sx4pIghe_oRQX8a;zW@ z*vn95dp)=N#s^|#Y!Bn}{;V=>#zqTaHH=P=7FFXiCH;?IcA(1A07YuQ{y#lo%A`AR zi*NQe4p3TmU)1zlu^Lt=htW6{w!tFoBk1^Cx=0gN&YB_hiv&+HLpMEehn%zv3$nNi zDs1;R;mH!A^U$O7R$&&2K#8(({G1Cr(_wZixsb>|_TS$b4hv^?5XEnZQ}mdL#?K|- zk+BPu#U}Yh-H}ybzne;3@yuQDv=3uKogkFY6RVcR z%1sK)Ej7-F(I9~9I0EPnT`EA2HjGEIV>qL?5{P*~ttMD_7m;OMlx9Dp;l`|S7zOEB zU@qAg%SDW!pY{m)lx=E~M^&`uzLXnDgE^(p(G`Zv`||d2SNB45s4CP43wc-e`*e={ zl?g`pmQirr<PFmvcf3gTQ-haBA#mp)i-@ED zH@%hl-k>|;W_1j~0dejC%mBt7{WrqZLOiQaxwO z{W82v7+S7cmUtq5LzxaSyV3k}0R7V>0YxtN6Z32Kz@-QQXx&zqc@cz*#{)21$YmPL z_6}*7%?}R_!P@Uyg99dNb;;r>YVicNZRb9E*1fLd@{pwR4f~}zZa$5Y`AFiskKlZo zCG%;LmH8;m$BZ!9`S|CU&)*`wiTq->c7`ah7lhE6+<;9ouU+m3b#SnbQ{O-!K%z_z z<6om2qf^QYNLc`B=24Co}?Pw=OWx6vmMpxhfaI04ft*sC*L@dN8lbMH57P3WJN`8}XoGuWE9Lm}X#<^Niy|ZS2w?4cx50vIGJ_RcM=JIfDsPD00IP(B(G|k+ z1AV|QlDzXIYE@ngDUHu7%M;_(b8(SGq%an}0jST~WrIvzNIC&*s+OUvw+GRe0~i8b z#&OA$hNJJlEuwNjF6v@l)sGoZ1)V>aimXSwaFg&}(FM5Nyu5+$w##!!Tj*`VF#nZIw zTjgsBTxqlzy;1`USwxAb;zhs9C{h_z2UqqfV3I7G6S-JIC`LW??X{a3V2JaOelPaD z7>N7RK*)OsN#QGi^IJrbjD#iKLDG7ZF%Xlj-ozq!%Kck_GcYv@h-lT2Z@1EwYUj#E z;3xx0Z688Jz$F|(jJ$bdir67H9D2ds-a6bqD1-yM!Rdz9nWkf12pB;cP#_bV}+5fpum{RCdUc5oCUpYrl3P>)tQM1$@$tN-j7o%`i zH^`svk9udlKi$(QD_95uiIWU*F(oO?o8N#kMyC+xAi`#@ij}ai0yMTsh?I=F4IXut zpJ<&`1*o%6B{A^!$Ec8=_fnFgwp1$iHmXSFkjdQ;3b$2faPlR+Jt<}D)XJ!1i{q*_ zGgq6NX}6H)9i>1b`0zRfm{z-;tIPs$z?d(2>qJ;7dRsX;SC?j~E`kaDBQk+gwnH&t zOJcb0r)0UgU=qpJnvU=|EC~GfU2w%qLjS8%RO5SG>-90S&EY|Bd$=Ig_}oJHdVHh# z6p0GXypvAFwmr#sHe-wvr8Q$~Ssu zR5C}k-Il#9HQuhSCX21LR%^N2XmvWP-8Mq+>)qx?W3^UWWz18zz1&)9)|zYemDQ!? z)mpdK-l*3b?b=$SxmH_F1vm^vhC5no#+)jQ5)zINQVnQ@}d$Rua(u(#a;AH2y}nRR*L(5)6e}jJzgj(i?K9V8KfXN@RrWt8NnWR_-)_eov358<-={* z?+USzdI~07{Mqu_)spTf#cD~){1OH^>as+KJVkAXvH>9JgzH+vcM58Y^!Ge^ZttS( z6>dX~#(F42DEcx+>}CJuCs~pEN(;Hg)<$3Ccd=>Iy%T0M3sG-4JOslHh0@?~b1Uk+ zEZMb~f7C=^d{@+G)ItBp0(3hlr~+P%&>fz&n6?nK<}?LXWCDDg+Tw-fi3%+Ag1WZS zYE#!}wWcBvkY=FMNfKnBre$ISo(d^$vatG*m~%y`ma2Xv28hK*eT7>c(RL^OmbXhe zM2H;#>23lM61GYz(|pyft>cHsRi=rjM)?ic$6+xMWuMHM2YAu)BT(U?Y? zQ06M?H3GN))4re2xXG-yq+an5qKhx0Ae$E2(LMMNK*7oV>Lbit;ROUn?NiIDl5{S3 zv;Xhs2ZFCQYF>($!+M*UiPlC}i6$XYXzjZ!5#zgbTJ!3;bFU)0g6os)L&Cnai&{41 z6Wc9R5-IuSIecTpYr1bpXbOP3Py~s*|FZ?4UcL;^%M?z2ilCO@B)T~AC~j6X10am;fXUqp)M*M;-&q0KaEFi zX=98lK8f^~Ig?_vIQt{ZZy#)dmk9ZWx1qe^T)OZr5QRcFC&vAP2jHtpBzj^p;CNIeY&MdynWJD^K<{{_0o!SD$q93qL%2HvSBYEs~8Z znZ!d>(?>^Ln-0{S!0`~j>W6s14wJy)>*f^?f#C5GOs;W1f6w>xc)p+T3E}@YIB^S= zh4!?a99&79l0vU`sVQ`TR>dcUxY6>po-r{tVvv5@gY;A$B(pAC8fd^J<$(fkQ9MAb zzVtFtJnBF6qdu7*l_lb~qanr6ogT7e%8pqgS6w*l|Kx{#G(W68A@=Vh_Dj3@J>Sg< z6i*uL`?K~dyf2|}#9r^c3nG)Z?hF7yqm(=TqrtX{IIZ+*cW8{EKlEeVrp4$8mfYvA zHl4eTA_9&-|LZ=<{4Gpp%8wUJsmr0G&xCW;iVV@yxU=Gn^_PgFh_i-W3|cj$rWeI! zl)9edIhI}0*DG%nRLROzr>@KLRQ6+CD_1Z0Kv0JsVI>Iw4gicJunn(5iyQ+5cKjOj5dB|(xwUxckqo;(EZ&DUP0GL=`MnT&Mrpp z^y{tC!=SHw9y?90NTEYYacSLJWlVN7`6MXmBE(JX2NGRS`NcZ5;cSJe%@_#*W&<{U zTKMVSNq-4Eg&;t*YR)G?b0 zOdUD|F~BQyAM%i^YoT15$1KyNeMoRYotyCBK$>^t)?bH>V>e14dmO-2xp3Wx$^fLj z!q?6tOS6%~;SuS!VYzgaCqF=vf^6T1v{jsI;0^L5?d_MG_VyY(cxE&ms#MWCW!qA{?^>;q z)K(ka##&Nu*J_=`#b#%@i^S~uTz+H!4W zx!q0aeHpZKUrO<-gw1H25{+~|2-YvvP;}GjWufQ^`kflA( zk$)9PeLdMl79a4Qf%$mscE^0!zVMVai4PI}0mQWq{}tU*_UZcmV0-&;FR&$-wp*8b zR|o4_6?8hzM0!qtnClmkK6F2c-^wT_w*haI4FBYhWN**Q0z6!hvf;3vrvcT+Y9ic$ zZgB2IzOU>j@c!Lir#gc5&eC`pF8G(yr~fP5Q29?hQhQxNT($)+u3`8-3yor&ZHSii z+w_-XkR$abT}^5f_e=MJ6t-IftbwY8G$m{NB*2!19O&rnqfVbahrx$+pW!{*WdJ_` zwpShr`UO-`muM zJldHl4yHMX7>Efj^XfQDnx;g5Bjgt}-7sEGd-Fjo=h%~hD3#?h2=dD{ z8xHJ3YRGJ>^7XJGY{zC$9`D%9E4|}H+Q}`dP!s8wzWdO&F)42LJ_z&yugF{vdZj{% zph|@-n6gO_(96a5VZ*M=uZz z?=dnk=JaUm`L{)3*Z)lv+ZcUN9y*U?t7)wV0HmxIYKAL|X3qmdeKeXce_6y*Q)c|3 zr$lBP*X>qi^kb*t1HL~z-EZymk_F_&MU3rX^6u%cCc{eygT2#)nvDHWek+GU3UMI1 zi~h$_G)zBmWyM0qg@Va#&5Y{h9T!Z`q{>w%RbIo#&m0${Dq0?M8OoC=ciW4LjqV1l z{iwv%URZm~PbvmiDTIFThjCWv@=yeb(1a2x0m_mTp0Y8BQ`&mXgrfvb~t#H?fX+0e$09R@Z z0DI@A8m?)kftxh!G&`-UqU%cDVT1{e>h=JJV!e)B5plh~P`NV(7DJh|B6id;RdGz+ zIqYnu+Jl|MW*YWbleltD-H;#;?ZP^a;6%(3-EAN4>_Xnqa4)E`0nHwae9qNHBLVQe z#!m^H=k@3i)V-u~774DMRJ6mFFqiz+%c+G~5*s!sQPj8YPyQQ-P_9 znWvH&gAWnd=j=z$P15;|S9=SX!amy`CX^x5eowBCs@ha8qm%v3)^4wJni|E{0R}_S zc8o>i^9C+pHh>2Md<>Aq8KRriJ7vM`-sJ(?(P;)0%vcY>50w2xJu9(6vF(F)>=uF< zQsg&BKAehwg*o9&6S&tMeTi#6aZ2Wmm#;|Z z2SYma70LyNiB&4q45lSG#xP856YVJR`n)4J@lgQhkyO?h3$m_z4)V0y24P9kkkbKB zH;TGGRC|fX^~n?Jmx#nQ?sm&?c+N~$`WolR3RJs5p^c$xY81Cc4g^Q`^vYH@H5>%M zC=UxC^}xu`ofb?YNRWVKaI}0;jsj$eM)}Ov@S@*T41Yk+wn$ugH#coMUAF|N4GYaw z9b4m6*IYXRk#PI-Y6s3ty*&_|KbTU`g1t<3_Hb%y^7XiS@8~l|{v``g_Im6B_)YQg z0&K%81)H&a0en?3q;yz^v<2B5N`{@*{v}whb~oKdnA8fU>X%~Q1-ndFU! zCK4|nBysU0;5Vj%#|3t|*8-eSBF47mneWhl~_h4hS;I-x)VS#h7oDD?7yySq?#yo)Pv2qlmMWn2pY@p+!jcJY}LrCo@&($R=p zzoTv>x5~=W8RsN>z+s0(2TGO*fEO6-urBDOKf2Fit8Vv7EOsWoXZ8U+nR4|3EOUk zR$d3oghl{LT)3S}DXum(BNy+a0x0@FBK0M!ThEN{h_!u0KgSa_;pTKc^*Lva6;`?&QES!OxRAiN0D<@P?Ewx8AYAVRcSyu*|B!7ey}AU=u*|s8%idyWaSZ1r1^V3C z<1n6_x#_`j$*n4*>t&^j9xZ~WJHc{h=#rNhS)yvD962hl;D|07|1q0;fsc+uz}O~$ zMGj*3xua2W@$vFa(H4K)#`OnTG$O*uK|f3U5eoa2C7(Y(Mr*WdVZYIMp*OnZ)3A%5M0H z(-vV8j#;oM3EVlA*FYlsS9&}^O)9}$cwxhL4P~5$a&Uvn+~Fa#0<#(dvyoltQUX~Y zvg+CQL>+uM@*o;JRL{a5UI6x|Ula~j0>hnzsgve?rOZrBhq>M@driR$^!~Z?m(kcP zyS+UJP3jT)c>HyQWI!^JkQ^|wklB52G2$Mvt{h3_IQ=mVFwB=P_#+;xzdlPmz+v1qK|tF5Snfe4!g$Fp%MxJwNe=G(f+M768BJmpwy}9B)jP_V;W${<#DviU^-8!WH^dMyC-ZK zs#eqs!xVrf?o4O|K+ekkHsT7hhVKbT2A`}nEqVy(Y2hZ!Y#5^4EJR8SljwildU~Yf z8vvFwC9tRl`516KWVlgIQMA<&r&#h95Oj-|MXoC441*q>>L9ApRTaD4+d-Z@wGucz zx9CO)J5}3)GHjM%oWphWpn)Q6Wd_cYmjJUf227!s_ZP~~8kCAoBMrD?!vGTSI#950hM3Y(ppf8RANKiQ)JdYVXiXyIh7MQV307;3y zC!)PPC>$q7%cBN{prr_kaV-GE%JI>WfuS@g<~d`}^H$<#PoJJ>?WH~DsQ<5_()h{# zKXCrwu}vRt;d$%7cX9n^_y1Sk#q~O!7I3_4`kT8@QB%|uCOCl`%y@(b7nLYo%|2*D z4_YLL89@52LgR!Riq=cSoGS~fQV#w!Cg{L3H{E2|5w}ho7v8AdGNModS;32(6gbcxwz1T~VdBkl@UKaMX+sDSefW>i{ZTU;Q4MpHc zI!ebo%jVJIeZ@e&n7(uuJHMK{SjL(WoWSzQebgwzDk{|(Ndsh4hVqZgGE@0cvF=5Q zVe}KM!H-sEPR`6#X6OhtbF%W@d;B2!K5}~f&?!o&_lUpba6jk#TpOQ+pXqEPo0U!`O=0Z z5?HfE(4+$a#SQ~g9Xem!=z9R5hpB2?JpD&N=$qI%m!poU=pM!|{?xd*^k4$8z2azo zL9ka~mNor^n~O&6kcRQDTBJBpFeXMdWj;0aLebauF5s_VY*i-|eXegxK2}~$5T;(& z9-_K^J$buZjCOE06shT!39gF$*tD29({nX{3a;fnbJ=J*^@h^Wd$tT$hBec)l0(>#%pr69!de%;Kf7lB+1*dYs zb31PfUg=qydJ!K@d{J;J@p19#FwIm_yP93)wj>|s_k#fAqG5!_;pd$u1loE*0i-=4 zgy^j!6`Y%Rvw;7>v+aAr(Frq&FJcPHd^jiMJ^4(-xf6OPYnI=H*(QE(H~?`K0LEy1 zt(M1`;i0q^2SlUSVMQNK8xR{9-4ZA6>gcho7q?_4R0i~@B(q`QXpcru==XjDDi>?l zj!$h^9jVi~#pv13;AT5Knxe@yI9A_sxtCmd|1%$6pI`MIA~5eDe-q8pqwzkl^r}8P z^U?9Do{uL-2kp}ENb{&(bTalaKYV5a;?#M1JaWr@r5BTAF=;Kf>PfA(*lMjb8~nMt zvbM3YvD#W)U21LM&BoGlvb?g^UTn6K)sD~LL zU+>e2E`Ggp?>%Rqea_i?pFPI5NBo-mA7-a!3@k;PQtzbr>X-|mxG0#^%zTAj1L1KE zEdAs+0G3Je6o8u+fYVz84_0rX@FK|84Sum;;KGt_F4SFckgTq5y5NVaU3JmF61;vv z&_)F}ca0?$&`%)bglqf-g>a#t3%UhTuE_Tp7n+MgyczsI9$ij!yF`b@=iDvPu??^v z?{2BCzeL=V_QvyUbg`L{C*QR!KFKZ@2~^*owVplYC4g>QJov5|cGcIQ4u5BxAXR_Q z8bxpqxHKvy;cD(gN4N`Y!l2O|Y=enS)$vXJ#?^8%E|1j`ASx&GYU^JZ(2nV8g&J|& z+=1?Va5);{&Zj*MSW(9+Sy13+_kdHcGKAnlIfx`i<1{C5b5jrb{RTvP>~|;ovRxEX zrRmj+G{ZEH9G#-?+HPBuXk5m^tuX2oT*WS=If{N!_GhpWMw*sunEI4Ca(iO#mAGTZ z@%&PsH{D)lPO_zb!+y8NuS@-ff#ix1BytN!V7Av~OZ}Ar$|rOIr!4@i$^DH6-Jb$mJjLGqL|=qG9hLkwu0X_9B;#bd_JJ5;%^GIoTgYVO0~cUp-Q(f3Z4Xr$zNP{+9;C?=Yp>+HVe1~gJH)uB zFC^=v?1pOv=wQLb4mTCNnkX!yh?f#*2$}PertjN0XJgG1JhUSwI`d=_1D!U-j%6bZ zNFqVqGNY6X9|C5`N(Y8iHqu2kT9!c$7Zd+8N-fM%D26%A{S8JAW^S?>L=cHu)X;ip z656mC2%L+WnLZR{sU9-K$E~>=vz>UeSRhK1^*X>reaRyqENQV`Hho7NKCD3^&#Vq) zw8%UDu#rdB=VttXXN5I(pxydV#tl68#|$)ECK9xLvF?~zi@?TaxY#HDpy7{kkm!fh zy303RjA2iZ{o_-iSy&U~6#2FUeR5HUZ4M0n@b@_W@;5F$qrl-1Hp34HCt1|)eDGwW zVmE=kj1ByXES&KPGVjJd;g15l!h8^HJzeU0S&bk~3v1$MsH|rI*eDxN)F0Tj%M_mC zyaE!&CHpf`OMiW=mfhCF57py)CIjYmoK!_0jHU1a8T8X$_zu;;56e=4`u8vFApQHz z5sB6?Qhhi$IiYCZIdgNDQmH^y2(n4A+FrIt%xC+DCiY;>`!J*q(YsgLp6eDG)keqb zl;Qupe5Y0O++wR-DHT8=U#U5TYQ9~l79f2|$EkGc`6ARpDzz&4a-r-*^zO!0+Z;30 zy2rFeb?zUH=-lsRpL}sU)*{Vl8h5QBY2hT57w_~t1c{oF5aUGa1R1ZQ< zh_s;SETA5F;GXAn@01r|rl}610mf9Pfej@(7>69Macv@zMC8^(MXAxh-u9f`<*%() z+1M>`f4(hKfUxWaJ3yFwwgyu_4|GlkBLuDxcu#-%xOz*D$~M0G_IOF*)O#L)3^@?Q znh;2>tq4M&LKh2-rj(apMvbG!bu~3Eha?~Id9|j{XEVWYP=>z)kR-TR^8x`DB5@a5 zl(Ya*?=fo^r?s3ou0y?Kuj~!2o)qyCH^(-|C#c&EFs#+IVcFgw1oe+s2wtv8kf{+t zQ;IK8&%aVe+e;#SL`=uQrV~4$&NE}}i4pv9poD!pN@#$($c%C+%_wk>z(FQ={a0T$ zYjk<+rlS<*d2|`2FHPLR02ORxS zd49Mg^fFphq&jN4xxkKa#OaJ0`=}l_eVwhNAEB45agM5EzCIVd4k^+RzRw)dsQ$zA zgf5-MF^%x`7~zXMM3?`YuF>V+&sXXpR)ge6O;Eb_axCe;K@2RO2PIjfWCPO9EZ6 zK9DLK{7f;U23(LK!hg%c0m|G>5K{rII0U@5>7kETP&&K}Tl( z#)@qMw|25*K+e+E!n*e)}2I|BTG&X2F0cl_}vrqv+L6*NL8&gD)Xwbg! z(pwgCTGxcW+L0HaFefIq1g#i(*FXLA0U6M^q+(qo5~^ZmY*zIk{Y&}^T7LLrYw8TF z`Bw5*vX-4AHjOX?)sZ+bh}%gd!16R!IG8{TD5BEsB7rx(HK?fwNfqrw)iluD01o2; z-6ZA-WBU+pU#edOc-fa*#K5fFC|$pql0oP8p+kDOA?+c%3=vOGOCglX? z7(0?Hxo7)P{-_V0{>Pmi%S6*TN*7O-h=P(1ZO>q$iqF%=o4~@`Zs6H!vbT z4r+WB`I6A3;}ETnq&f2bhD%kuurYblT(=`kXF9G`(7@Fvmeg_i)|Fk>K%^1~o>x3r3s zhko&w;a`FTVTO;dRHc&*J%GT<1uZ zW4n-z0EwY}UO4>CAP=xcBT$1Q`83IT&x{$uC{d@h9UHU;MY}OfE919HlC1Jt- zU?J{_NSCt}dgOnTzoMcE=NHoqXW zYgaZ*wZqgK?v90MeM%oCUU%^0&p!hk`r*HoW%ce|XPluv%!(KF5%~MqAlJXr1mrCR zZ+-*oQHbde5{j`%be=CJbZwki(RtSflo)<=9?cm-^YnAQ0KVS4AEN{;7_G0ib_zc)14Z&){+YY)Iz6vFQ!er}*U!wic*2;76B4 zgrI@y;)Cf<@z(9Q#`h0AlK1Y9gD_8aR0Dceak|T$))HmkU z24~R8VgwBmqt2_bY9n-0c;^duPMBa(j(fKGiMK*S#|n<~_5S{-NM%Qck-thT@>wf& zTE&i6s1%)Y*>xavu;Nzo?Y37c)Eb3irCrDu9oNfywQ?ozHOhs2t>}8?dZFc2>s}}7 z+;EZLK?@{QQ^ll9)Y2_CM&6A0J3RW)=S%Gr&@Mcr%N#Hb06AwJN}{az*{_hU9i~gQ zDGh;%f@pmV8^lmW?qDHDe03e9&Mu`J!;AvL#;6Pj@<7TZaIa2$xUlQ?Qp)LJ*KShR=}sQYt!!_Q@^6>sgNP%a1xKe4>xE_>^Td);MB za^yl4j^#q3lFwI)fbU}c094_)2lE#|x*>>)gxnLDx_)5;YCOZRaN}^-R^8*eNXtX7 zdPtsdhEFDpAXu<23g-&W9zc28l#I<%D8evDF_E1$lf(Sk>KdlX)J`AKnj?=3I~=C* z@=HuWqS1#S72KKwHA6P&YN0WNNuq<;g`10xHM6FVmk|I$FCVVJ>PCB6?saenS#Lu^ zIaFRTqBI6zEOK)x<`?ju2|{-T5znOF~^$`^+#&Tt2 zy35~rkWO=@*P=Zqf$~(>N-y9G?WGsE4>LkRQwx|m0n7}R1fp`+AddD`Ak$z$1yug~ z3PDKB0S-lG<;3M@xC9y|)m0?K+1Q;P(X>Fe*L+3xz)DP5Bx^4=qmbonIe^dR*Y^i5gG;Gblo zASB_I7nGV4zq}PXR&0AQhYGtEs@5~;L7}@kB(#wFi;(*u^!0cG#y@|)WGCV`u zP<DAb;y@%MY4mvaa64bZGy z=fCflK)1%nOM@Io^nQ{7xHd8?-M2YVM-U3@Ksl`zR1t&3At-F=aWr7*qy8+9x+grU z_My0oFlpt)&cOqi9<<;&KD2Nbq=cY8)Zl~q?Xg@+?cFV22-jf#gI4bp3<~an;i^ZlYwmtzg{$#x0WfA5 z6!(A@VE-GK$lb#n#adv> zMd57qy0{@JKAL~xf@=mCRbJxcc%>Ka08yOG)o_i$yl$ZUVyiT7Hn_lO@zLMKD_>?1 zE(JaS9u{lJWGx_Q$I09^Flg!apu8qRrN4p|rAr;$o1pBb-@E!(#^dN*>O~{>$6}Cs zh-nJ07kI-%9=lB-X&w~uq?;GOj;1rn{trR`8Su=!B?c2HKJYG-0-s!gOE9YB@f}!0 zn^@6404Wi~9=ae#D-*5!4Ws1pHFyEVXvh!mHL+%2v$wg1OY<@W|KSH;X++wSC~C5* z5r-s_2I2<9H$j?ny$Fz-7d6UAwcwR7UHW^y3nlBnMifb&{w_SZa*Ffn%4^o3yvAsR z0z^RFPOLBKuf)oJ9^g!2{;?!fBndmn*r;X&;(J)g}J!UcWpQJE$Bac{taBjeT}<5JI%Ja5rCcn0QBA&A>dJP zjc}lRz5ta@uv=Y>D+Mro-`^fe85+LFY@Z-^_#p%_hHfLxp<#ntkB=?a2+}8!KITnv z@+71OB|AG8Zov)!U_hPbXLMxs0yuD;JO$bxV9zHvHn##BSUh`sLR zpzy$rCl`nylokf|nVxpTPWCo8u_HYC*bRk=Jn6OYw{_-(#>ej zGXxaQTRnLaN07U@{4L;cHzTg&@5%C^2xj&oE@kMSF6yte&(eq&^{(y#*O=+ z88><`0{8eMIP56*_+g_yYDT?EUNc+CzRmN+J5;AfzKEO7>rKZo)3LAgbm@p(>4$aQ zHeE+gn6P%*`%}5sD`kd*3VERoVea;%tBkwb%O`O-I%#^2A|EKZx!^yDD{ddFkuUhe zpm@SS0o8TG^9$edY0q0HFa4G;ea0c+&1PsQD;gSFU-jwYgco}dEBKgax#~-AF@vt; zw3w-F>#}29xMy=+EzQd}px`^)N#LrsM7Iikp`gn}yN9e%zepDf5SF;wI52v2@_up? z*rWsQz3dA0q_YXBB`sF_Rx|b8;C{mS6rkK1Yjhl3aQY>5o5c%D8Z-Ae?P>)+u|#aU zl!d0{!5so6Y(^?5g|Xfy0|+Iu1CV^u+=wqlT?D;}uH0*&w8Gt`GUM1?^zcHj(8G0%A2w`&;9-w1%P)h)R7fG`5ikora|y;}722h5lkLi|DVi7x0h;etiexW%V4 zvcGU49Ewx`T?@admq?UlGKM{|zCVbZ89-K-1|emcv;wO_I%ZA8?&il#H&@X5fW(Et zHl%mb6-xp6hmUR`)AOH64!jU`iV(b?Fx_7r=^l<;(;uS1LqMZlffNN_50eDyFPnZZvoV6o zU&Jx={pb(F;k%#i@YJLc0EZ0s19#7tb1u2zjVITuMi5=j-~_oAQ%G+e-#;E2NUlheojbRFxCr&LN-# zPA<;%D;I1U}H)S(0j6hh42oa~#>!X>v1{ZbVNi)9z+yFK5#doyhi9N4HGc*U)^U&Jy8;2$NUxvl@Nr&uT zLAU8>l$B1$k@y&ZS${ZOgV~yA07xJj21mwK9YW|fdMCw^s=Wc{2d@ezoRe_)0Zk74 zVmTYRbfDn!l@`#_F(p6LP$xeJuygl;c3VzG48+o*wJ?1WQ*^d9c^+_-*8``&2LM#> zBA+zvXU|7cGsleJTxQLmb_ZSCc+nKyQ1&p8%}=v+Pw$@ClsYaGR>Hkg&{ z1HoE&!y+fp-hgyEYzX#P(XSr2MuENF*qlL4=@PT2VEVq0O-SBq+%vT-2)I!m@!C-@4oSEtQ4`&V1| zz=_*oih9+Cz5E~K>4x;^5s#$6+bfe6IkJg_#?C{Jy$mb&KDTd66=P%*vIv8cD|0oHCiho zxEA^t+^o+bor&5Ir1#nE8xssBsMH5B{XIB|8@MpWjtut~klkIh6LVq_x+O4aWYVI2 z6B4+UcC+4q#M^jkr5B{{?3ZjE)c!RzY|K26;Rzob`VPQZiMfB-N^gU7&AI|J;A z>1JkC6FLyq6q_(UF|uizK}@Fn^j9h$(3xy<>JKnQc(nWf*oV(On{Fq}W5hjRbHwxR9hldpSGltEQ-~t)`(e}{;n-CK#5P!6K zBMlBqk`bZ_l6@Gk__sKwT#H!v)d+(jp&34qeuD;)w?`Pj%m(jc;rRp}2B$%_t_VOlujZ4Cj;Qj^(U~egO|3E4% zFN7Xhi99kcsgUI$2Z*kxyhr34rXuSp?K4=<@FE6Q&Y*bQiK278zpVG8M#TB-o}T0z-rBY2!uZW=tgT@tbx|B7v$L!|1g^WOpO8Ysp%Y3EVQh8GP{_G;K*8c z!y0#eWBssoTgrivOJ)e#_ce$-g9ux`ppxf1ERyJs;ns^IqPCp?rR+rl3`pvvY=*xe zuEM1(=#v7sHX?IiL%SQ0bnu`a^x(l4!H+x8y`_8bps0W$&8n^)ZL9UsTMklNdY~VJ zzXuP3pO*CvxT-*Gy9?Rm)_QO)^b1Qfuv&waTU`P>9)v-9>phUGB@xrf)h8f!11vPK zMlfSYFR`)KJF(6qT1f=7+4OPQuk4s3ii1eTfZhr4d7+{FS7=GWnixtJu(a@y2gYnr znPJWya2di}kXSYlycNJ@QOxv`T|ssu>>zN4L}vlG3u~bLS&_gl_M699k*0wJxLF@Pn7uwj4)C;&2U=7TI7h1?i5nb%Cg zOy8d1`_Gb9_jfQ}?-0M29EE@2mXks451+FJZn_jBH~UIPDw{Ph+43qI09ea&me=8y z*FFSjux*>&&sb*Dyg2?DoRl{nC6`0ruUCtDK@QD%5-duCl2>;FV!=^J(%v8znL@dj zsPw`;?1_vN3{x4v+dP1EAp3iQfV1& z1|;SIfI!h~8U%P3EMO;br)Vio#p90a$oH@nx?4QD zJsQMT+M}`auJ5?b1B0bXKKHaR2d8!2YDc1 zc31#yDt&jdwmWZOds7`q0T7Ol#E~$NBYXgWa`rWjZ($k&fHJ+b4&^wIZ@Z_AR;b7N z$QbvPzdU-0Da14t;{hO@okreso^~4HHAG!is<()&ZJZ*SyRki0efJLDrYIZ4ICjK% zrN}rs_=`S_>rK>EQQ(asiiftHA42vr-xNypITt1ltSQtfOi<%RL^8uy3vYh&!s6jY z{G-WBY*$U8J${!!RB}Qg$f#~p88b6B=wX>73%%4BsLG9Xj;w+KX{hSjb!+^N1=En@ z69mN=G^D*6GtHP!0uv2Qup6#768+xb2G}1x?Jn_4AW7X~p~=ifo|+F)hoQfeO&HoQ z@g0R;qG}9me&QiSEf+pzW?=9!-pWNwo;0^Md+Tlv+z_Co*}|fhaQx&lbSiL7Q9z=- zB9fB7oyaun|BUk1#Ba$3CTPkHH0SDq>$S1K4Ks;cud% z#eXAd0RdZ~<+7X^LPS6|2%*;Exm{}*IIaAe-1|5<(E5b#fz}{+z|BpGmGksAA1?DG zGzbsxKjj;iHB9)C52Np?hC_2lKZ%v6j4vJlVMG;RK;{s+Kjtyke!@FlrGP++U| zVxZkZ0#|>Ne8D>7zqgK#yltcwU93&kz2$ZLWF4EmE-1k*o&c5s3?JQhXd(QLegIVu ztYUIF6D{(?mZAw;V1}Lq=cXSrl7e`UM>aZOYQa)y=v9Hk`=venYk z|FisWEVfIZ1RSM^Nkd7>-1;qr`~j$;cVO2pT}kfXF7nZh;U5VOFuDE#zEN-`H{9hQb5<{r7TFKW;SHt4xx8Gp?Mgv!-K=m=L#oup6iCy1JhU52L zDtqLj(6t7(#&hALaI=A$+?XBVL~jjJn1PoPqX|5l$U{M#tA<4~>da6qZfiYnunkV( z92hN!B=$O8w#ke6^5Nf2HTt6MfWnDvk!pK#rwvaF_i|M7!)*l>=;k&(#9*XvaKp^I ziK)>>w;Ar?8*Jc8uGb^>5iH3FHp0uf_s~sR_n+_(MmW7T!HWYx!zEAlXQUlK9oGi9 zH~!+The~=115VrKw>zi`&;W#6Vc>1E@#)D&tadE+Bt4CwCakvaiqbvKL>g;syuj96 zXv75DV9;sU@UG>Zm7uK9Bd5FspiIwZcS8a|zQ#iXmElDI>@?Wu9+C@Y^dbd?@se(r z$seId^FaMG#EZX8{V^nkz>5?`kF#cBxXtd_+g6OtZt|ER9QuO*$fIY2hc5Xvk*{Pn zLz?(l>N<(O4UIg>o8U(ts1Hv1EBqg=h%$<{A$bgi z3BW3AEiG$Sef2iS4KJu znB`@`K-(!tSy<>SvamtJMHuxw6e69zH3*(}q?1;jsV`&mO%w&w+rp}qqAzECKI{Zk z=)*GM@#N4dxo9%oJB-B0gk&8ybm%acdP9bQFtHxb3UF<#6+n(w77IXHm29V{KBk%F zGw}BZW7*`&9gmUcs?ASh%3q((pwf`0J~aXm)%4!t&Qa6nll1ID>+PUr(b3nEq$r&} zCi&a_=`ob7oliw{vTDAOuR+kKQ-$DxO53eg3r@o=wje0f?X=sSPO04}cWSj_qg8?8 z)17v)0mVAoUbR}P*GuhMs~%9zLqKP=!nC8l2~rr;MgJE4S!q0{UZbBHvD0yeqOH6vr-9brrn*z;lH{)Lzke+e)|33rF z#~4ZU$Fe2x=D?HfLwW;>s6J7CLi=Uq2n^`HVyzFu<6 zC6F5&uiWzJYB}g%NPxlp$iagkTDqZt4*F*^Son4yRGD#D96Sck0tHn25j&oz-n|P_ z7gk|vV9RPk=nLeT2h{`=z}P&6K5gJt6}J|P2M{5HUjIDQgLEN{Iyj!3XYc_+&$4<4 zNb2gtAk*M_e1v41T)!B0CrV$HLH`=_(NYvj<3`j!81VVgJ7g&q{z3Rg!E)lQW(Khv zG<8J>a51?E`=D7h9jKB3@z23~2|gP1&+Wo>4+=7!8uZV)>%j-_e-O~ufozOTtl9vN z=_Z>ycwo>!2lgMhvUUdjGjF(MArH@>3gQOTVlgefm8<%DVAR7poBd%N0<;7O&6Nfk z^A7>*GTa}#<(Tma9rRy|@6G0n4)8kjiAB23gvVW3==YW%hIAm^W#yb$^_IXL9;#jS zyr-7$^t#8lHcl=hU~r?~=+eIg?x;Etwzo~FOHsp|jTbn+kEwQ|?UaOUhdAHb@8(vr{wThi$zU?+Vr%-YlWv7sL zs-;S)UTS%6r^LKaeG;exunRaa*A8cZ>d*L1^(pv^giM#wv5^HSF%mi6tywu<1mnW` z)aPL2)6Vls={zqogE5(3+7f1Fe(Gz8InDOeU*iv-->JXB-^}XN-}?WaDwA6qPVf^1 z(Fh_fM@bzq03jz4(UjQUp4`r3dua=vf$eQCqO+0wv}rNlV=6R^5ndNy0FlixTaK7I z37;c=rADz>^4y6z;DrI4B(uKy=&WzPc;2B=c;1-IE^W1T5VL#zq|7d` zuj1L;Jv)%Sr7dv=_BLzOW@Bh+6UoZZu1H{Lv*l!|(EFV1YgdoN$o zsD?S!D;=MxIL1{kv+ z;Ocg+pd*=Ql}6%O^Tn>y5cbOKH#dnleieeVwBPiYIAfj`X#q1m`n z8u(ec(xp+ZG+Tz03bSK+zV=qz0sos~r%|f69f+E(*UI^lQ)o|ok=o@WB$*>svT`Kd*?jS& z1L-_T!#yTfN?W8I#FZW$iz~?KfvkiRj9X{lDpSF4SR=jP{z zQ`O7uLZel$c$K2pavj&nms&1l-7gm!g;q5``ORsUkC0?eb<2pHO0Ya%9IKF-V+s6Y za;~&R+d-V`@rgK>>@E2lbLfbJJ-Y)rSlS|I;9#>yZZ=MqHkGWL?3y@E=AWfma zEp5TRtT+ym}ef zSiN3#oN}R3@XB7b(wLZsooDco%)ZK5*%$XUUz`i#{=pMA?CKggaSZmDOe<}Lb`aBg z%~)44y@AX=iZ^aOvIALF+R|oVRkK2AHU^b8fvgN_Pwa7-a*MHm8*b>`>{S46BU)O4gV^#Tls|HROZflMdiEg=CYve062RsHLj;sPv z>2AAJYe2$SaP+TD%&PW8P&LeX{-s%&R=C&sVqe8{_7$GMn2fBRvVJ>=k*Tp5Ss0I* zP9ojI-o68wTiSAGU~b!q=4=cvZBkho-n9XS7v31Ny_TiU!DoG6`ni!U#HH?f8T#Yf9Ch#1xNjLkn*+e?*p$1T^|ZlUd4!%5vkGf zdwtHuAW!t67=@3^r)E=fYc?q(ZJp*=QVwEe#7qkE zv460vV;-;e`NkYl^|VY1Y0H~|)Q^-&VMMe}X^)PQNg)E^Y$f2d1sE6!_|w04hVY%Q zf^gMO%Z-xWb2esmM|R1VGG=m~VFat;hiB`sU zvq`cPb0HYz12!&MGGgpMd`rkl_z+PzxgGNm8d>7+qX; zjp$mh*9+xRBVVqUAvCa9hO%H~a3!sG3SOsC={OUMu0B0Wlv~Fmaq}Uxj!iDJNdsxi zvx6kok;28~G;03K2P@__NL2c@b4aDrWYx5V%|O6sgU~7M%ZyU$6nVjv05>A)XLi3& zcuFP_HEl%)T^3P?@}eWzXI^|js0T@;{=p%E^h(Q8Bip%2>yF} z!RenS5=1{Vhg3OD5KUXw3?zFN=$z7?%qWIVkN!^yZeI$0#lIIml1U0pTTYQehcTf0 z;}}ppbGNf02mak&>Ufn}(XDg}EnnF&3z2kpa9k~!rbX@;rfYpYxqzypZKU%!0o59B z2g|AXQMUup$8XLdeJqbUlMDoLbnGzM7~{Ka@+}3b$gXS#w%~+f?$+0YJdv0iIgBLj z+TkLxP)P8jJe))cYt7D{XO5si;QONU_rFzmQzp?lZH+~A&cMy?$}U0ca>Du#sB&BF zTCLM@>y8zWKMT3}JTs&gnbV>L&4K3+CzqCWgrD>qCoS_(J6KRoP>O2Y`%8dI-S3%0 z!kFO68iqdu{mY68CIgw@&L#j;Ae?NprtGQ-W#9KUguamMYab{Qd+kWH@Yucnt#LF$ z*Ch$4qcyIn&iGQ>h59D-R=!a7Z`H35*L(gt#ql0q)`iBTO4Kd;unJT}w|X{rXMFP6 zKj|!jV>Tq?@{kL@2EaJrZx_Kh^N}MD-Z$8m;vupxnD`C)3u!xmF4Fxuq!c%%L7ss| zq|ctILx%UZpDu9d2JanT2>GnBB2!@+{Wy4*GEj>V48s9>;X*#`vfJ^BmdnvBq={LQ zh4jdr?IH}@Sym`a84}E$_G%Mt_?#@nlT=?n{;uCYgZ@je(l*U&<&>siB+t)Y zwkS*{llm)dbw&L({8l@H<_n5aZ$cex{RcE(8FJKXEPuEy znlB#eJ5TeaaqlkyYQAnfG=C<61kG0%{tQGfLHZ5%G++vl`R#G!R~~cHaGTHGzgtKP zYrg!|WFO~P8llIQ)PTY;C$aU0Q5bb{#00V>H(&PVCpBQX;@F+k#HzQnxzXNSJ=XJ{TE5fk z9^cwHxr|=ro8HNdF8!;!vT<^?bE>(rv9{XXf{PA5+T2=QKelYUsNtsL4^BGnap#!V zT^3MR_VsT{1y%^wr5sTrAB)a3!)*EVW_dB2#CcH&uaiofpZnR4Py>=St@A(%Q>`(M z?9E<(HE^P{I{k;hH`^jAT-G58n$s>r;Zpy?dYToa^;WrFf*L@DiqmQoIxR>-)M$D6 zb`?t4)!U89g-aj%iL&Jw1ZqCy$`OfOHnx|xBJ(Ru8rs)?_0-P}(b)IR1&vJ;8PgUp zg#yn2cT?JU870MO(eo)mZKTA{{m0P?(50=TNQue(bybD!UN^Y%HZ+k^3 z0pqy&R>y5O3Z+i5(JnVSlhw(7Qpnrjl%;X|16BFn8kew$Y z^w~s%w6)#|lJrl_@9`$iv~ZX#aYpn%J!+3MkvwfDq%f*^UW6$fg^aTOY&hhU=HN^E zfBPQcw3+n5Y1>02{j3c76#)hvmHUMkbbSWv)BfY$sU^2uftXIv6}dj+oP}q@UV+47 zJNu~YIA39rT5NV+kj~a>olH@H0j$Z$%067_1ATY-#f!aj%)Lx}sC_A24v>dBW zx1QR~7oEIY&$rt(uh6K}3hhz_{;yFeRy*x#d15Dsr1eSET8~E^=R^1&oziAw(e;#7 z+6fYOYxW0>2>jdTg21Oq&S@)}LhZK$nN!-D871H;vWh7IZp7Zt-}+O+ax#g%X=^KD z?@;D+dw@Ab#RXJvbSYI~P{v$>Y=UmS-KgegobTyUQm_Q%Yc1cRM19QLYCgH*ZFFz|i)^~ReqAF&oiQIi~F34Ssn@-{e z)d6M+juNBHpAY&-Uu2V8cL#AlvCMkn9YR1zW{o{MB(Gl1-Xr0C-0N=!$ic|0G-)xS zGHRm;sYnZu`_sB2pJo{qLd#sQ)~GpUrvq8>^NoBJ(&9I&Ud^i%>Q!%I88vP_66Mp; zsoQ+WrlV2HY&xMmcm! zq<>04`!eXi{O`g-GRdH6>nSp5BExxcfZ;^tPqub;eFNuGwODq_1+P|_u^+Bw31qj5 zLKb;b!#laed0m1wRS&QeWzH97SYD!KH!aPBRcbKPp;v?jN*TD9nJQ*Z(oKZV@d8yDu(!_rgQ%AT%7Y8hVRMY_sEo4^4U&%X`4@VZ04fR zf8tAW#8WaC4LR$zz*$eGpM2W$wW3$5xAV1`)fErsU7`Yu(>&DanTlq6thX^gk$9bTlRbo|29gjZ=!jBh%BMU1wQWA%hHHQESLH|(*ACN2T4n-346}MJuHyWj4V`A-( zb)QI7`iw)I=0oi>Dxu4EaZOv4ouK%6Xa)y}XzXv#1&vM9_@pgi$_;8J*qhSk%c$y^ z+HGt~VEf9Rzx$-{hfKVYoR+n|U? z%cB*6ISa=+KkAWHKerB1{S1eFaz)Ugpdx7aa63^gbOFXkZ=UeltIn1;==4Kj zb%_{$buNgZA7YaccA++iVG_6hnxzD?;agFOf<&$E}PJLodsl5FNt+@CpBq) z;n#yfH`c)Xum8reWZL1~njIJwaI2MatAUkf=EuD0KoW8Ay=%Ep037~v zDo_lvP;hIVYPHgK3X>OG^w%a)zMY(o&WE%+8BNZ{$J5qpC&<1b(w?~{%DCr_SiyD6 z^I$zllZ(@qcT~zf$$}ZsOR_ScAn3w*#?MR0 zxD|ipr6FjFu!)tc`xha>M1(h+POrVXHCVahvBAobrw8f}&N<_Z{+ak_z*h0oVp0uV zlYB4tA@lUjYeac}WG*PLALE$`@=*!xsEA?8G4fa0G+$Q_nc}#lPAs=yT>3q^RmA&S z?Te!|!9xc`=7|828B1yi_UUiBsLHEcZ`9hATBmLW1f6D^Zn^AKDqg;t&x2oop<1if z%f(jSYkOX)=yWRXw%Bwhq?z*}txrIIv$5~ArP_gF`s-(V;E3#ha4yJxnyxEtaYy9? zv&QU{wrobxc@~UhN;5Dr^B0f2R~S+zQ*qjgi_DyjkKIdrOlMeLlERZZ;d0aMb+>D_8_;iR0`bfmzRC&@YX#2Z&yNQ`1Z7X&duhnIZS} zYh!>fG*WyOb$4PI9t$H(CC2+Sn~;2!2D2I2-jj;RfBuK3gd%aUYuxE08!>0g=q@FL z((At}Kw->vJn@t8bdbi>>!3$2Pt=XSvJEY!3 zgVRH68e>f$h1!gX6{a`ietg;~&S#dVNO8DWf!-V0OS+2Cv$5HR+7wOt6PvuXRcseL zr&BFi!4;?ZI-d7R`F6Qh#=Cc;)pn|R$0@lbfU)e`Vr~b zx;@9ZeSnPHE-Ef;UR7db#1$%8gPdU-KY@xY(-HTeUJ&!>Lvq)rpn7=L>Ey z+&R&;aacaVD3<4ox9EI=8qDZLDVpIb+j&V_nw`L29+}ZmA|}({5lkj+8B>_d%rH2m zO_-6@TpB&av*k8vXdf7E^W{UvT$qX5r1#8qeI;{X%*=cJ6O%EVlTc8v=YqCY|0DJi z)5+&s#ZIeX=XyEKml&wt3#HSm4X@IvmMiUgq1}St?FvMWHcI)9Gcmi_KpLzvB6`5{w0Rm%HqzJ&7{KZvzf;WBVB6JduBFs zrFLeCPQ2IePR336t~n*I3Snekt?hzq zI%K76H#&_rFrQX=@{p|yef$i)+*Go#8^14OyPOZz85^19S|fj(S^-3xV@#%#wm>_9 z>AY@areiI%g~PZ*MXcvrJA(D3EoBPpnJE^tF`%>=WMx2?89Hn&^lW)hD(F5B`h_b- z;z8*>GY`5t%!BN?_xiob*wEIdv)*-FOlHt+T0i2>%n}rtFSKgltdjTb$fubR)xCPB zP-_*vO0isU-GWyFHCw0AamuxZQ|h!PzVz%4A|?6aQ_aGOtj^|)6>*%uups%{wD&}J zOkR|>MmvEQJvK5gvX|P%V%*6hZnRXG2djLVT_N6bn$rsd)8@ zTX*Ki0#t4noDS3?DV6Fiu>G`(<*HXKxs`g}D>lkrX=3h_%>r~+7S=Qb@AIXmD<-Jv zhD=~g#+9~wJArY9BDhvZ=3_(9>iZhTSY(N(wRZ$hOIv5*X}U~jBo~s&5hXsa+lb|C z94~E#SvlT~hT{#{7PDo5sZ%iw@Gtg$eIy2$-ZL{mt}tyez+t%P^}la2en{6n!wgAD zXmLco48|P4CDg|iA&W$9elnSs9IxP&OAzE%F1IQT*Y&`R28Gh$?$#-E@{`wE%;0AC zvMjuCD9-1L8f+(c5%A7%8fJOc-(_eH`qU6mOTt? z2%mb(^21$-dRbP^iB)e29LP3TkM+E#mhbes$G0|4F5|qAymjec$ta+!<*`jBNJu65 zgOiSX+&SiTmy^F7tnBNj>2A|@jWBkd;%~@ka?zc$1VKHsiFcAP@1 z)$kgfng{U-)oN#A#q_y?+ChH;QKEmoh2BB`9F5;WKbXW)OB@f4DRIPaj`ho&KW#3LF=%r?*&5?9VEk`ehkLR?APXrqfOJAaL{NjPbk%PQd% zhe{@^$ry&-Z%}BB8uen<4mH!o!>#CK-vZwT@*NdYm<$Ir_DGk z3pbveaf~Xuw`R+}QzzxK@85iIB=()&GqdkX2KF6;m0quZX47da^m|^p6w)();=3?n zO5OQ9`tvdVbJg?d*Gc|UI+K2#aTfh~1^@YJ{&VHo)c6+u^ZWegA9N!HW2q1DpBpa1 zH@j;0x%9=Em-5de{PX=6^UpW%&&Mw0pFht(KYl*{{5b#Ir(b^ldDyJZznq`u`RBEb z=G2F-qmTaRTKaQO4*&ENf28=Ou3D!)a_Zas)*}b_EuNu%+Ew30bI7SYclleoFP@ry z+EqWN-_ip=tKVYe>8D-wcEV*&{oktzu4fkL&-dz=d0F&JUG-{OrJVZa_4L*a8a&3h ze%e(J(gK(+->%={MbuBb>RJ8PYkA;LEb>$tsro5Qf^cjQvPZ+k`$IqNsxqxpPPMKe zxQ_0nKi_jR{ps_c-{C)hMSpsVmsWq-Rez^@`0lIh9zH^#t8eHT@RI6xyXu!|g>y;| zcjF=cl>YP-ZzcUwS1r>-c<>&FsH}E)L=NT*<#!-8EUOD};dgluX7>^c8{Sd$V zK0RB;d`^8~AH8%FR0D()g7xL$4;G__KUgmn`{mKhYGLMdc#4^H@hQ(ar#?tfsIO^Y z7}A`6tn@lzy$k$^f9BM8^G9#fA2BWr(y>M%jD+>6@S|UQ0saMyF#wn@4x112hUBMR z#rrd--&RL>f|xi0U*=GSPH=D!$ z?)})TFs2Lp;FFkB&+xfL=Xz}BpE(V@LjOc;e%=lAF&cZYYdsfk?aJE8Po6|h=@C)R z!ahEJ6ZL@_80aLQcRZ=(-OrLPch9IKbf6I5G8O)WS?tA$L?Cp%%?3QJPVGYGGcfkTLRD?=UMPW~I)dcbFgNh_|ah zgO`Y7t1sZc5PJ2O_%DP}eT~}iU*E)kA-_;JKqoydO6X4h7d}L`rS{N6%`b6i^?Vvr zxE6A5^|$ysGA#81dR=o_di{Cyy6`JRxca<#{c3t$b8wuz`Zhf48cv0*N#)=rBJAoQ z{tG#fTA~j%=Ms*EJ4Zc(og+I?x6?bquy6~j58^}Igz69QU&yCa2|GpBq^k6R7Fh8J zs$U^!gm2-AQ@@TM;{H>gfPV@1%8?YRehVKGfXmn`vNH8z>Q%TJb^FWI2Oi4z;lF6` z8oj0kO*~8Lci~yra5jSfL-;zrqi&_wnRVrev8k8gkSLF+d+4F&c8DEyGqf0nhq8;h zkXnT2;TBToVh03$o;qNr#tczCfDe(|sR!vH^FbE#)l2Xp_NDHnhng!=ujfHaS82vb zOZ3MyG0h_hm48Ytnq3l#ewA7@=cKuRm|8RwMZ%{36SZi5ieyZ^pIS6)B_#egYSCPl z7VtgPq8Tpjg+HVg&3kEwevw*O4Ccf1C2G+enRe0taFwXgt7 zf~)!#wP@~5NAl~`!h$g$(!Zt_&C`*LssBwaTCk^D4uq89ksAz zO7g0@o?5h=iv&bnK`kuulBBDyq!ul0&_>-&En2dsmW!xG3)$3iF}1L~O_WSsLM>V{ zAu_j*T38ll!uLXI(eetBuWP79i!Ma}E~6Hf)tMq*PAyu7Mxj~VL@g{%6X{a>sYQ!9 zbfOB>q9qON{=Ns3SIE3u^qLRGitx&!ql*ciRm(*FaYD1RFO diff --git a/docs/manifest.json b/docs/manifest.json index c2c202d..dc8f918 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v7.json", "dbt_version": "1.3.0", "generated_at": "2022-10-28T17:31:56.730889Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}, "project_id": "0d919ec91381ade1c67705291b214e1c", "user_id": "81581f81-d5af-4143-8fbf-c2f0001e4f56", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "id": "bigint", "customer_id": "bigint", "location_id": "bigint", "user_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_data.csv", "original_file_path": "seeds/shopify_order_data.csv", "name": "shopify_order_data", "alias": "shopify_order_data", "checksum": {"name": "sha256", "checksum": "4d0dd043a886a0d9e7680e7ee2cd132717490f75d3a06fe7c38956d901976146"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "customer_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.6470258, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "location_id": "bigint", "refund_id": "bigint", "order_line_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_refund_data.csv", "original_file_path": "seeds/shopify_order_line_refund_data.csv", "name": "shopify_order_line_refund_data", "alias": "shopify_order_line_refund_data", "checksum": {"name": "sha256", "checksum": "0564bef778890f3e086e4057b2536aaa6cfeceb2f9c9bd95f44d4b9f04a33dc6"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_line_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.655862, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_adjustment_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_adjustment_data.csv", "original_file_path": "seeds/shopify_order_adjustment_data.csv", "name": "shopify_order_adjustment_data", "alias": "shopify_order_adjustment_data", "checksum": {"name": "sha256", "checksum": "48ce96540f19450088c661fd48bd8f6d58bb4ca13a1f048880e9984be367172e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.657533, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_adjustment_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "product_id": "bigint", "inventory_item_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_variant_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_variant_data.csv", "original_file_path": "seeds/shopify_product_variant_data.csv", "name": "shopify_product_variant_data", "alias": "shopify_product_variant_data", "checksum": {"name": "sha256", "checksum": "3430f8a8a9139a753a727caa7e10ac2ac02c4e2683a37ed933566367d2f6200e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "inventory_item_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.659572, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_variant_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "user_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_refund_data.csv", "original_file_path": "seeds/shopify_refund_data.csv", "name": "shopify_refund_data", "alias": "shopify_refund_data", "checksum": {"name": "sha256", "checksum": "8d8bc98681d9b0d57a43af3fc99ff13cc42401d97e49bba41c1fafb28f858d23"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.6612291, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_id": "bigint", "receipt": "varchar(100)"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_transaction_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_transaction_data.csv", "original_file_path": "seeds/shopify_transaction_data.csv", "name": "shopify_transaction_data", "alias": "shopify_transaction_data", "checksum": {"name": "sha256", "checksum": "def7b7fc64e42148b900dcd1f7327b470e5d3b0ed8e73f263e46a715ecb09199"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "receipt": "{{ 'varchar(100)' if target.name in ('redshift', 'postgres') else 'string' }}"}}, "created_at": 1666978249.662853, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_transaction_data\""}, "seed.shopify_holistic_reporting_integration_tests.flow": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "trigger": "varchar"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "flow"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow.csv", "original_file_path": "seeds/flow.csv", "name": "flow", "alias": "flow", "checksum": {"name": "sha256", "checksum": "8a59e1c986a7509b15603761cb0225587bd8db8ae81ee0b146ca821be8103627"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type == 'redshift' else false }}", "column_types": {"trigger": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}, "enabled": "{{ true if target.type != 'snowflake' else false }}"}, "created_at": 1666978249.666206, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"flow\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_data.csv", "original_file_path": "seeds/shopify_product_data.csv", "name": "shopify_product_data", "alias": "shopify_product_data", "checksum": {"name": "sha256", "checksum": "5cc03f90512ac04a6526220040085e4e0488b62ef22e8b201424c7d7cf1bf847"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.668143, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_data\""}, "seed.shopify_holistic_reporting_integration_tests.integration": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "integration"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "integration.csv", "original_file_path": "seeds/integration.csv", "name": "integration", "alias": "integration", "checksum": {"name": "sha256", "checksum": "7d65e88ffe7faca2f24289441001007cc8222d5bb8f788c2807072bd7bb0b022"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.670136, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"integration\""}, "seed.shopify_holistic_reporting_integration_tests.metric": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "metric"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "metric.csv", "original_file_path": "seeds/metric.csv", "name": "metric", "alias": "metric", "checksum": {"name": "sha256", "checksum": "155dde6f21d4cf0d8d11b898b4c1f310c2ffbe44c897aaacd5dd31a607bd447a"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.671916, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"metric\""}, "seed.shopify_holistic_reporting_integration_tests.person": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "phone_number": "varchar"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "person"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.person", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "person.csv", "original_file_path": "seeds/person.csv", "name": "person", "alias": "person", "checksum": {"name": "sha256", "checksum": "6f915292a8aba951a356baacc8e65fac88b0a28e98d6cff84f708aeaf68d9ceb"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"phone_number": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1666978249.673671, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"person\""}, "seed.shopify_holistic_reporting_integration_tests.event": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "flow_id": "varchar", "campaign_id": "varchar"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "event"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.event", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "event.csv", "original_file_path": "seeds/event.csv", "name": "event", "alias": "event", "checksum": {"name": "sha256", "checksum": "fb7883912895ceb24123ecd1e37c8cd3d8e837493d1ed2007fd64daf45a8581c"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"flow_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}", "campaign_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1666978249.675307, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"event\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "id": "bigint", "default_address_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_customer_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_customer_data.csv", "original_file_path": "seeds/shopify_customer_data.csv", "name": "shopify_customer_data", "alias": "shopify_customer_data", "checksum": {"name": "sha256", "checksum": "79bc0a5972c321cefe2973acdd443ce1d42e36b3b23b2298151046d23bdf4bea"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "default_address_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.676883, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_customer_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "order_id": "bigint", "id": "bigint", "product_id": "bigint", "variant_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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_data.csv", "original_file_path": "seeds/shopify_order_line_data.csv", "name": "shopify_order_line_data", "alias": "shopify_order_line_data", "checksum": {"name": "sha256", "checksum": "cabaa49c9bd299b34eb2154893a6dd399fbbad7e4ad7036293c8b4cb599199e0"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "variant_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1666978249.679014, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_data\""}, "seed.shopify_holistic_reporting_integration_tests.campaign": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "campaign"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "campaign.csv", "original_file_path": "seeds/campaign.csv", "name": "campaign", "alias": "campaign", "checksum": {"name": "sha256", "checksum": "e80312165b7d9198633569c5c50aaaf7e73df74dff2d46600adca3fef4b8dd43"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1666978249.680992, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1\".\"campaign\""}, "model.shopify_source.stg_shopify__order_line": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line"], "unique_id": "model.shopify_source.stg_shopify__order_line", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_line_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_tmp')),\n staging_columns=get_order_line_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_pass_through_columns') %}\n ,\n {{ var('order_line_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line.sql", "original_file_path": "models/stg_shopify__order_line.sql", "name": "stg_shopify__order_line", "alias": "stg_shopify__order_line", "checksum": {"name": "sha256", "checksum": "bb641f0d784534dc9d6d86bda3391b7c905b0a739c6cf34ef60e4716b5fd86ce"}, "tags": [], "refs": [["stg_shopify__order_line_tmp"], ["stg_shopify__order_line_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.45019, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n fulfillable_quantity\n \n as \n \n fulfillable_quantity\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n gift_card\n \n as is_gift_card , \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n id\n \n as order_line_id , \n \n \n index\n \n as \n \n index\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n pre_tax_price\n \n as \n \n pre_tax_price\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n product_id\n \n as \n \n product_id\n \n, \n cast(null as numeric(28,6)) as \n \n property_charge_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_for_shipping_jan_3_rd_2020\n \n , \n cast(null as numeric(28,6)) as \n \n property_shipping_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_shipping_interval_unit_type\n \n , \n cast(null as numeric(28,6)) as \n \n property_subscription_id\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping , \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n title\n \n as \n \n title\n \n, \n \n \n total_discount\n \n as \n \n total_discount\n \n, \n \n \n variant_id\n \n as \n \n variant_id\n \n, \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\""}, "model.shopify_source.stg_shopify__refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__refund"], "unique_id": "model.shopify_source.stg_shopify__refund", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__refund.sql", "original_file_path": "models/stg_shopify__refund.sql", "name": "stg_shopify__refund", "alias": "stg_shopify__refund", "checksum": {"name": "sha256", "checksum": "db92848ca19e65385f44b51e662bc9a3c773fecefe896cbddd1f23d22d078e82"}, "tags": [], "refs": [["stg_shopify__refund_tmp"], ["stg_shopify__refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a refund within Shopify.", "columns": {"refund_id": {"name": "refund_id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.4813929, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as \n \n created_at\n \n, \n \n \n id\n \n as refund_id , \n \n \n note\n \n as \n \n note\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n processed_at\n \n as \n \n processed_at\n \n, \n \n \n restock\n \n as \n \n restock\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\""}, "model.shopify_source.stg_shopify__product": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product"], "unique_id": "model.shopify_source.stg_shopify__product", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_pass_through_columns') %}\n ,\n {{ var('product_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product.sql", "original_file_path": "models/stg_shopify__product.sql", "name": "stg_shopify__product", "alias": "stg_shopify__product", "checksum": {"name": "sha256", "checksum": "dd30ab5bbf28fc246f4d4625c8057bd05f59c9e8f115d8c72f301b22236b59eb"}, "tags": [], "refs": [["stg_shopify__product_tmp"], ["stg_shopify__product_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.4667342, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n handle\n \n as \n \n handle\n \n, \n \n \n id\n \n as product_id , \n \n \n product_type\n \n as \n \n product_type\n \n, \n \n \n published_at\n \n as published_timestamp , \n \n \n published_scope\n \n as \n \n published_scope\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\""}, "model.shopify_source.stg_shopify__product_variant": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_variant_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product_variant"], "unique_id": "model.shopify_source.stg_shopify__product_variant", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_variant_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_variant_tmp')),\n staging_columns=get_product_variant_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_variant_pass_through_columns') %}\n ,\n {{ var('product_variant_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product_variant.sql", "original_file_path": "models/stg_shopify__product_variant.sql", "name": "stg_shopify__product_variant", "alias": "stg_shopify__product_variant", "checksum": {"name": "sha256", "checksum": "6d09962a9153df0f1b3220ecfe3ecd87997d5e5b87187a985a7c25006ca8b229"}, "tags": [], "refs": [["stg_shopify__product_variant_tmp"], ["stg_shopify__product_variant_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product_variant.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.472289, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as variant_id , \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n product_id\n \n as \n \n product_id\n \n, \n \n \n inventory_item_id\n \n as \n \n inventory_item_id\n \n, \n \n \n image_id\n \n as \n \n image_id\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n position\n \n as \n \n position\n \n, \n \n \n inventory_policy\n \n as \n \n inventory_policy\n \n, \n \n \n compare_at_price\n \n as \n \n compare_at_price\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n inventory_management\n \n as \n \n inventory_management\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n barcode\n \n as \n \n barcode\n \n, \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n inventory_quantity\n \n as \n \n inventory_quantity\n \n, \n \n \n weight\n \n as \n \n weight\n \n, \n \n \n weight_unit\n \n as \n \n weight_unit\n \n, \n \n \n option_1\n \n as \n \n option_1\n \n, \n \n \n option_2\n \n as \n \n option_2\n \n, \n \n \n option_3\n \n as \n \n option_3\n \n, \n \n \n tax_code\n \n as \n \n tax_code\n \n, \n \n \n old_inventory_quantity\n \n as \n \n old_inventory_quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\""}, "model.shopify_source.stg_shopify__order": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order"], "unique_id": "model.shopify_source.stg_shopify__order", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_tmp')),\n staging_columns=get_order_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_pass_through_columns') %}\n ,\n {{ var('order_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order.sql", "original_file_path": "models/stg_shopify__order.sql", "name": "stg_shopify__order", "alias": "stg_shopify__order", "checksum": {"name": "sha256", "checksum": "a4b7cdee44f261fe11e487f1022c1f7bd57196220a453bff382c1876ee5a2192"}, "tags": [], "refs": [["stg_shopify__order_tmp"], ["stg_shopify__order_tmp"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.464277, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as order_id , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n total_discounts\n \n as \n \n total_discounts\n \n, \n \n \n total_line_items_price\n \n as \n \n total_line_items_price\n \n, \n \n \n total_price\n \n as \n \n total_price\n \n, \n \n \n total_tax\n \n as \n \n total_tax\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n subtotal_price\n \n as \n \n subtotal_price\n \n, \n \n \n taxes_included\n \n as has_taxes_included , \n \n \n total_weight\n \n as \n \n total_weight\n \n, \n \n \n landing_site_base_url\n \n as \n \n landing_site_base_url\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n note\n \n as \n \n note\n \n, \n \n \n number\n \n as \n \n number\n \n, \n \n \n order_number\n \n as \n \n order_number\n \n, \n \n \n cancel_reason\n \n as \n \n cancel_reason\n \n, \n \n \n cancelled_at\n \n as cancelled_timestamp , \n \n \n cart_token\n \n as \n \n cart_token\n \n, \n \n \n checkout_token\n \n as \n \n checkout_token\n \n, \n \n \n closed_at\n \n as closed_timestamp , \n \n \n created_at\n \n as created_timestamp , \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n customer_id\n \n as \n \n customer_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n financial_status\n \n as \n \n financial_status\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n processing_method\n \n as \n \n processing_method\n \n, \n \n \n referring_site\n \n as \n \n referring_site\n \n, \n \n \n billing_address_address_1\n \n as \n \n billing_address_address_1\n \n, \n \n \n billing_address_address_2\n \n as \n \n billing_address_address_2\n \n, \n \n \n billing_address_city\n \n as \n \n billing_address_city\n \n, \n \n \n billing_address_company\n \n as \n \n billing_address_company\n \n, \n \n \n billing_address_country\n \n as \n \n billing_address_country\n \n, \n \n \n billing_address_country_code\n \n as \n \n billing_address_country_code\n \n, \n \n \n billing_address_first_name\n \n as \n \n billing_address_first_name\n \n, \n \n \n billing_address_last_name\n \n as \n \n billing_address_last_name\n \n, \n \n \n billing_address_latitude\n \n as \n \n billing_address_latitude\n \n, \n \n \n billing_address_longitude\n \n as \n \n billing_address_longitude\n \n, \n \n \n billing_address_name\n \n as \n \n billing_address_name\n \n, \n \n \n billing_address_phone\n \n as \n \n billing_address_phone\n \n, \n \n \n billing_address_province\n \n as \n \n billing_address_province\n \n, \n \n \n billing_address_province_code\n \n as \n \n billing_address_province_code\n \n, \n \n \n billing_address_zip\n \n as \n \n billing_address_zip\n \n, \n \n \n browser_ip\n \n as \n \n browser_ip\n \n, \n \n \n buyer_accepts_marketing\n \n as has_buyer_accepted_marketing , \n cast(null as TEXT) as \n \n total_shipping_price_set\n \n , \n \n \n shipping_address_address_1\n \n as \n \n shipping_address_address_1\n \n, \n \n \n shipping_address_address_2\n \n as \n \n shipping_address_address_2\n \n, \n \n \n shipping_address_city\n \n as \n \n shipping_address_city\n \n, \n \n \n shipping_address_company\n \n as \n \n shipping_address_company\n \n, \n \n \n shipping_address_country\n \n as \n \n shipping_address_country\n \n, \n \n \n shipping_address_country_code\n \n as \n \n shipping_address_country_code\n \n, \n \n \n shipping_address_first_name\n \n as \n \n shipping_address_first_name\n \n, \n \n \n shipping_address_last_name\n \n as \n \n shipping_address_last_name\n \n, \n \n \n shipping_address_latitude\n \n as \n \n shipping_address_latitude\n \n, \n \n \n shipping_address_longitude\n \n as \n \n shipping_address_longitude\n \n, \n \n \n shipping_address_name\n \n as \n \n shipping_address_name\n \n, \n \n \n shipping_address_phone\n \n as \n \n shipping_address_phone\n \n, \n \n \n shipping_address_province\n \n as \n \n shipping_address_province\n \n, \n \n \n shipping_address_province_code\n \n as \n \n shipping_address_province_code\n \n, \n \n \n shipping_address_zip\n \n as \n \n shipping_address_zip\n \n, \n \n \n test\n \n as is_test_order , \n \n \n token\n \n as \n \n token\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\""}, "model.shopify_source.stg_shopify__transaction": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__transaction"], "unique_id": "model.shopify_source.stg_shopify__transaction", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__transaction_tmp') }}\n\n),\n\nrenamed as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__transaction_tmp')),\n staging_columns=get_transaction_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('transaction_pass_through_columns') %}\n ,\n {{ var('transaction_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n where not test\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__transaction.sql", "original_file_path": "models/stg_shopify__transaction.sql", "name": "stg_shopify__transaction", "alias": "stg_shopify__transaction", "checksum": {"name": "sha256", "checksum": "b837eb0c1661d2817ccb6a1c3123e7d146dbbd9a63ea1fe0ad52ba8a1742ecbe"}, "tags": [], "refs": [["stg_shopify__transaction_tmp"], ["stg_shopify__transaction_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__transaction.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.47908, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction_tmp\"\n\n),\n\nrenamed as (\n\n select\n\n \n \n \n id\n \n as transaction_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n device_id\n \n as \n \n device_id\n \n, \n \n \n gateway\n \n as \n \n gateway\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n message\n \n as \n \n message\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n parent_id\n \n as \n \n parent_id\n \n, \n \n \n payment_avs_result_code\n \n as \n \n payment_avs_result_code\n \n, \n \n \n payment_credit_card_bin\n \n as \n \n payment_credit_card_bin\n \n, \n \n \n payment_cvv_result_code\n \n as \n \n payment_cvv_result_code\n \n, \n \n \n payment_credit_card_number\n \n as \n \n payment_credit_card_number\n \n, \n \n \n payment_credit_card_company\n \n as \n \n payment_credit_card_company\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n receipt\n \n as \n \n receipt\n \n, \n \n \n currency_exchange_id\n \n as \n \n currency_exchange_id\n \n, \n \n \n currency_exchange_adjustment\n \n as \n \n currency_exchange_adjustment\n \n, \n \n \n currency_exchange_original_amount\n \n as \n \n currency_exchange_original_amount\n \n, \n \n \n currency_exchange_final_amount\n \n as \n \n currency_exchange_final_amount\n \n, \n \n \n currency_exchange_currency\n \n as \n \n currency_exchange_currency\n \n, \n \n \n error_code\n \n as \n \n error_code\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n test\n \n as \n \n test\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n \n \n \"authorization\"\n \n \n \n as authorization \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n where not test\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\""}, "model.shopify_source.stg_shopify__order_adjustment": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_adjustment_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_adjustment"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__order_adjustment_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_adjustment_tmp')),\n staging_columns=get_order_adjustment_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_adjustment.sql", "original_file_path": "models/stg_shopify__order_adjustment.sql", "name": "stg_shopify__order_adjustment", "alias": "stg_shopify__order_adjustment", "checksum": {"name": "sha256", "checksum": "b494a4c88cf235fb0b11c020d004bcf0904e9d1ae235144330d3d24b37ad4318"}, "tags": [], "refs": [["stg_shopify__order_adjustment_tmp"], ["stg_shopify__order_adjustment_tmp"]], "sources": [], "metrics": [], "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"order_adjustment_id": {"name": "order_adjustment_id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_adjustment.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.483711, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n id\n \n as order_adjustment_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n tax_amount\n \n as \n \n tax_amount\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n reason\n \n as \n \n reason\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\""}, "model.shopify_source.stg_shopify__customer": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__customer"], "unique_id": "model.shopify_source.stg_shopify__customer", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__customer_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('customer_pass_through_columns') %}\n ,\n {{ var('customer_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__customer.sql", "original_file_path": "models/stg_shopify__customer.sql", "name": "stg_shopify__customer", "alias": "stg_shopify__customer", "checksum": {"name": "sha256", "checksum": "e43df3b376bae7b581cfb9514f59c82263bbba83447e9bd440a214e8c2dca709"}, "tags": [], "refs": [["stg_shopify__customer_tmp"], ["stg_shopify__customer_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__customer.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1666978250.4438999, "compiled_code": "with source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n accepts_marketing\n \n as has_accepted_marketing , \n \n \n created_at\n \n as created_timestamp , \n \n \n default_address_id\n \n as \n \n default_address_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as customer_id , \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n orders_count\n \n as \n \n orders_count\n \n, \n \n \n phone\n \n as \n \n phone\n \n, \n \n \n state\n \n as account_state , \n \n \n tax_exempt\n \n as is_tax_exempt , \n \n \n total_spent\n \n as \n \n total_spent\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n verified_email\n \n as is_verified_email \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\""}, "model.shopify_source.stg_shopify__order_line_refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line_refund"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\nwith source as (\n\n select * from {{ ref('stg_shopify__order_line_refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_refund_tmp')),\n staging_columns=get_order_line_refund_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_refund_pass_through_columns') %}\n ,\n {{ var('order_line_refund_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line_refund.sql", "original_file_path": "models/stg_shopify__order_line_refund.sql", "name": "stg_shopify__order_line_refund", "alias": "stg_shopify__order_line_refund", "checksum": {"name": "sha256", "checksum": "0d7b02b07f95694dd5358ec919659f16bdccf708f906546b99f448355b1253cd"}, "tags": [], "refs": [["stg_shopify__order_line_refund_tmp"], ["stg_shopify__order_line_refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_refund_id": {"name": "order_line_refund_id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line_refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1666978250.4461288, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n id\n \n as order_line_refund_id , \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n order_line_id\n \n as \n \n order_line_id\n \n, \n cast(null as numeric(28,6)) as \n \n subtotal\n \n , \n cast(null as numeric(28,6)) as \n \n total_tax\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n restock_type\n \n as \n \n restock_type\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\""}, "model.shopify_source.stg_shopify__customer_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__customer_tmp"], "unique_id": "model.shopify_source.stg_shopify__customer_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='customer', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='customer_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__customer_tmp.sql", "original_file_path": "models/tmp/stg_shopify__customer_tmp.sql", "name": "stg_shopify__customer_tmp", "alias": "stg_shopify__customer_tmp", "checksum": {"name": "sha256", "checksum": "1f896e84164292f48db1c4eddfd6b3afef9ce4661ad2ab160c8721c8e620026c"}, "tags": [], "refs": [["shopify_customer_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__customer_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9227352, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_customer_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer_tmp\""}, "model.shopify_source.stg_shopify__order_line_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order_line', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_tmp.sql", "name": "stg_shopify__order_line_tmp", "alias": "stg_shopify__order_line_tmp", "checksum": {"name": "sha256", "checksum": "778359b2c17590b95d7b5709bfdd28b50d323b905e4277c74203416f08ee458e"}, "tags": [], "refs": [["shopify_order_line_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.94085, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_tmp\""}, "model.shopify_source.stg_shopify__refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__refund_tmp", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__refund_tmp.sql", "name": "stg_shopify__refund_tmp", "alias": "stg_shopify__refund_tmp", "checksum": {"name": "sha256", "checksum": "2bcf1d64f126acc4d271984df2b6332286bf10a7345962f7037c391d8ecdbdbd"}, "tags": [], "refs": [["shopify_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9462929, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund_tmp\""}, "model.shopify_source.stg_shopify__product_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_tmp.sql", "name": "stg_shopify__product_tmp", "alias": "stg_shopify__product_tmp", "checksum": {"name": "sha256", "checksum": "4c88fa0dabe17fa99b7509af7b3518c844df1747e28e6c7ac4f0a8262424e91a"}, "tags": [], "refs": [["shopify_product_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.952102, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_tmp\""}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_adjustment_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_adjustment', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_adjustment_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_adjustment_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_adjustment_tmp.sql", "name": "stg_shopify__order_adjustment_tmp", "alias": "stg_shopify__order_adjustment_tmp", "checksum": {"name": "sha256", "checksum": "e3d5e7ba5a680437560ef21796b014718c45d20c52fbf4ac950d8eb687348d96"}, "tags": [], "refs": [["shopify_order_adjustment_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_adjustment_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9577842, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_adjustment_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment_tmp\""}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_line_refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_refund_tmp.sql", "name": "stg_shopify__order_line_refund_tmp", "alias": "stg_shopify__order_line_refund_tmp", "checksum": {"name": "sha256", "checksum": "33bb981405f33c32bbe9c2107a9ba93fd70b9e59578befc3c9e7f78a68c27eb2"}, "tags": [], "refs": [["shopify_order_line_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1666978249.9639528, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_line_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund_tmp\""}, "model.shopify_source.stg_shopify__transaction_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__transaction_tmp"], "unique_id": "model.shopify_source.stg_shopify__transaction_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='transaction', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='transaction_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__transaction_tmp.sql", "original_file_path": "models/tmp/stg_shopify__transaction_tmp.sql", "name": "stg_shopify__transaction_tmp", "alias": "stg_shopify__transaction_tmp", "checksum": {"name": "sha256", "checksum": "9a4cf0c7a2495c01fd10f0d88655aaffe63ef8b3cc94883e10507b034285f978"}, "tags": [], "refs": [["shopify_transaction_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__transaction_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.970769, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_transaction_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction_tmp\""}, "model.shopify_source.stg_shopify__product_variant_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_variant_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product_variant', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_variant_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_variant_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_variant_tmp.sql", "name": "stg_shopify__product_variant_tmp", "alias": "stg_shopify__product_variant_tmp", "checksum": {"name": "sha256", "checksum": "cbb9a84c332f17d90ad953536a449714fac6f77f871da604d43ffb846f6d5621"}, "tags": [], "refs": [["shopify_product_variant_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_variant_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9760609, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_product_variant_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant_tmp\""}, "model.shopify_source.stg_shopify__order_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_tmp.sql", "name": "stg_shopify__order_tmp", "alias": "stg_shopify__order_tmp", "checksum": {"name": "sha256", "checksum": "f4fd2563557b13c2b54531a7fa9995e496aa1b39432d729a010ddcb7e10001ae"}, "tags": [], "refs": [["shopify_order_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1666978249.9820101, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"shopify_order_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_tmp\""}, "model.klaviyo_source.stg_klaviyo__person": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_person_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__person"], "unique_id": "model.klaviyo_source.stg_klaviyo__person", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__person_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__person_tmp')),\n staging_columns=get_person_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n {{ fivetran_utils.fill_pass_through_columns('klaviyo__person_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__person.sql", "original_file_path": "models/stg_klaviyo__person.sql", "name": "stg_klaviyo__person", "alias": "stg_klaviyo__person", "checksum": {"name": "sha256", "checksum": "0c4d31fb3c257dff6d4c5123f3352ee790db81b766ac4f3be3b1cdb06d19b45f"}, "tags": [], "refs": [["stg_klaviyo__person_tmp"], ["stg_klaviyo__person_tmp"]], "sources": [], "metrics": [], "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__person.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.593917, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n address_1\n \n as \n \n address_1\n \n, \n \n \n address_2\n \n as \n \n address_2\n \n, \n \n \n city\n \n as \n \n city\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n latitude\n \n as \n \n latitude\n \n, \n \n \n longitude\n \n as \n \n longitude\n \n, \n \n \n organization\n \n as \n \n organization\n \n, \n \n \n phone_number\n \n as \n \n phone_number\n \n, \n \n \n region\n \n as \n \n region\n \n, \n \n \n timezone\n \n as \n \n timezone\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n zip\n \n as \n \n zip\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\""}, "model.klaviyo_source.stg_klaviyo__campaign": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__campaign"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__campaign_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__campaign_tmp')),\n staging_columns=get_campaign_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__campaign.sql", "original_file_path": "models/stg_klaviyo__campaign.sql", "name": "stg_klaviyo__campaign", "alias": "stg_klaviyo__campaign", "checksum": {"name": "sha256", "checksum": "3bb055bc8484630176011790a666821ae220126184e05eaff411aa44406048e2"}, "tags": [], "refs": [["stg_klaviyo__campaign_tmp"], ["stg_klaviyo__campaign_tmp"]], "sources": [], "metrics": [], "description": "Table capturing email campaigns in Klaviyo.\n", "columns": {"campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__campaign.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.5834439, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_type\n \n as \n \n campaign_type\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email_template_id\n \n as \n \n email_template_id\n \n, \n \n \n from_email\n \n as \n \n from_email\n \n, \n \n \n from_name\n \n as \n \n from_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n is_segmented\n \n as \n \n is_segmented\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n send_time\n \n as \n \n send_time\n \n, \n \n \n sent_at\n \n as \n \n sent_at\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n status_id\n \n as \n \n status_id\n \n, \n \n \n status_label\n \n as \n \n status_label\n \n, \n \n \n subject\n \n as \n \n subject\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\""}, "model.klaviyo_source.stg_klaviyo__metric": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_metric_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__metric"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__metric_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__metric_tmp')),\n staging_columns=get_metric_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__metric.sql", "original_file_path": "models/stg_klaviyo__metric.sql", "name": "stg_klaviyo__metric", "alias": "stg_klaviyo__metric", "checksum": {"name": "sha256", "checksum": "d131ba8b5c6b489c12dc687514ef82b359aecaa82175b66d77fa44344b4eb58f"}, "tags": [], "refs": [["stg_klaviyo__metric_tmp"], ["stg_klaviyo__metric_tmp"]], "sources": [], "metrics": [], "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_name": {"name": "metric_name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__metric.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.596544, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n integration_id\n \n as \n \n integration_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\""}, "model.klaviyo_source.stg_klaviyo__integration": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_integration_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__integration"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__integration_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__integration_tmp')),\n staging_columns=get_integration_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__integration.sql", "original_file_path": "models/stg_klaviyo__integration.sql", "name": "stg_klaviyo__integration", "alias": "stg_klaviyo__integration", "checksum": {"name": "sha256", "checksum": "cf1d2569260342f615850f5d782fb0e166d1b70ea3a703fb2248d6f457023cf8"}, "tags": [], "refs": [["stg_klaviyo__integration_tmp"], ["stg_klaviyo__integration_tmp"]], "sources": [], "metrics": [], "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__integration.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.59004, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n category\n \n as \n \n category\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 \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\""}, "model.klaviyo_source.stg_klaviyo__flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_flow_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__flow"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__flow_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__flow_tmp')),\n staging_columns=get_flow_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n {% if target.type == 'snowflake'%}\n \"TRIGGER\" \n {% else %}\n trigger\n {% endif %}\n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__flow.sql", "original_file_path": "models/stg_klaviyo__flow.sql", "name": "stg_klaviyo__flow", "alias": "stg_klaviyo__flow", "checksum": {"name": "sha256", "checksum": "a74ad01e8fbca823f7ec229f1d0c59171c4a1200e314cb06e0ac75da0bc72792"}, "tags": [], "refs": [["stg_klaviyo__flow_tmp"], ["stg_klaviyo__flow_tmp"]], "sources": [], "metrics": [], "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.588906, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\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 status\n \n as \n \n status\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n customer_filter\n \n as \n \n customer_filter\n \n, \n \n \n \n \n \"trigger\"\n \n \n \n as \n \n \n \n \"trigger\"\n \n \n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n \n trigger\n \n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\""}, "model.klaviyo_source.stg_klaviyo__event": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_event_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns", "macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__event"], "unique_id": "model.klaviyo_source.stg_klaviyo__event", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__event_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__event_tmp')),\n staging_columns=get_event_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as {{ dbt.type_timestamp() }} ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n {{ fivetran_utils.fill_pass_through_columns('klaviyo__event_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as occurred_on,\n {{ dbt_utils.generate_surrogate_key(['event_id', 'source_relation']) }} as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__event.sql", "original_file_path": "models/stg_klaviyo__event.sql", "name": "stg_klaviyo__event", "alias": "stg_klaviyo__event", "checksum": {"name": "sha256", "checksum": "ac7fe60fc899d46d3cc8bad8279fbcf6bf8560a43d6389c41b7aeab1cb695bb7"}, "tags": [], "refs": [["stg_klaviyo__event_tmp"], ["stg_klaviyo__event_tmp"]], "sources": [], "metrics": [], "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__event.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1666978250.586554, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n _variation\n \n as \n \n _variation\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n datetime\n \n as \n \n datetime\n \n, \n \n \n flow_id\n \n as \n \n flow_id\n \n, \n \n \n flow_message_id\n \n as \n \n flow_message_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n metric_id\n \n as \n \n metric_id\n \n, \n \n \n person_id\n \n as \n \n person_id\n \n, \n \n \n timestamp\n \n as \n \n timestamp\n \n, \n \n \n type\n \n as \n \n type\n \n, \n \n \n uuid\n \n as \n \n uuid\n \n, \n \n \n property_value\n \n as \n \n property_value\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as TIMESTAMP ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( date_trunc('day', occurred_at) as date) as occurred_on,\n \n \nmd5(cast(coalesce(cast(event_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\""}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.event"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__event_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='event', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='event_table',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__event_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__event_tmp.sql", "name": "stg_klaviyo__event_tmp", "alias": "stg_klaviyo__event_tmp", "checksum": {"name": "sha256", "checksum": "0aa5096828da6b1f75fb7a93d5f7621f024adb2ef241014a075abae8511fb337"}, "tags": [], "refs": [["event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__event_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.097572, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"event\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event_tmp\""}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.metric"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__metric_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='metric', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='metric',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__metric_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__metric_tmp.sql", "name": "stg_klaviyo__metric_tmp", "alias": "stg_klaviyo__metric_tmp", "checksum": {"name": "sha256", "checksum": "1f887542c817cae88b22c9632e93da3ae5fa6c02dadc22e8901484b55e4c5f2d"}, "tags": [], "refs": [["metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__metric_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.10347, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"metric\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric_tmp\""}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.campaign"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__campaign_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='campaign', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='campaign',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__campaign_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__campaign_tmp.sql", "name": "stg_klaviyo__campaign_tmp", "alias": "stg_klaviyo__campaign_tmp", "checksum": {"name": "sha256", "checksum": "f494e0b1c1093180196545a7c05c0f8f7f8ed074e63328057021091c1d776530"}, "tags": [], "refs": [["campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__campaign_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.10916, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"campaign\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\""}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.integration"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__integration_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='integration', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='integration',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__integration_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__integration_tmp.sql", "name": "stg_klaviyo__integration_tmp", "alias": "stg_klaviyo__integration_tmp", "checksum": {"name": "sha256", "checksum": "174b16d87563e123fb0d813d3749c31fb80fc08df48143729e28f34bce0a2e04"}, "tags": [], "refs": [["integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__integration_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.1149492, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"integration\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration_tmp\""}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.flow"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__flow_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='flow', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='flow',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__flow_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__flow_tmp.sql", "name": "stg_klaviyo__flow_tmp", "alias": "stg_klaviyo__flow_tmp", "checksum": {"name": "sha256", "checksum": "4437a7971622b8cd114313ee2b1a59b992ba862c49f0086851d5d60082617b0c"}, "tags": [], "refs": [["flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__flow_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.121218, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"flow\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow_tmp\""}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.person"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__person_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='person', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='person',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__person_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__person_tmp.sql", "name": "stg_klaviyo__person_tmp", "alias": "stg_klaviyo__person_tmp", "checksum": {"name": "sha256", "checksum": "ec768db1c8d1d5eb47e967bf23bb95726133d2a298373f757930302de96e2910"}, "tags": [], "refs": [["person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__person_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1666978250.12846, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"linkedin_pages_integration_tests_1\".\"person\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person_tmp\""}, "model.klaviyo.klaviyo__person_campaign_flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__person_campaign_flow"], "unique_id": "model.klaviyo.klaviyo__person_campaign_flow", "raw_code": "with events as (\n select *\n from {{ ref('klaviyo__events') }}\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=7) }}\n)\n\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__person_campaign_flow.sql", "original_file_path": "models/klaviyo__person_campaign_flow.sql", "name": "klaviyo__person_campaign_flow", "alias": "klaviyo__person_campaign_flow", "checksum": {"name": "sha256", "checksum": "89abb4c1b2f90ada510aba4f45cb935f457c0e0a776a6f761826e5b270bc7817"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "Table that aggregates event metrics to the person-campaign or -flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that organic interactions (someone with null campaign_id/flow_id) are included in this table. \n**Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\n", "columns": {"person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who interacted with the flow/message.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person. In other words, the first event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person. In other words, the last event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__person_campaign_flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.65888, "compiled_code": "with events as (\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then 1 else 0 end) \n as count_cancelled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'fulfilled order' then 1 else 0 end) \n as count_fulfilled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'bounced email' then 1 else 0 end) \n as count_bounced_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'dropped email' then 1 else 0 end) \n as count_dropped_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to list' then 1 else 0 end) \n as count_subscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed to list' then 1 else 0 end) \n as count_unsubscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'updated email preferences' then 1 else 0 end) \n as count_updated_email_preferences -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to back in stock' then 1 else 0 end) \n as count_subscribed_to_back_in_stock -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'merged profile' then 1 else 0 end) \n as count_merged_profile -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'consented to receive sms' then 1 else 0 end) \n as count_consented_to_receive_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'failed to deliver sms' then 1 else 0 end) \n as count_failed_to_deliver_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7\n)\n\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\""}, "model.klaviyo.klaviyo__persons": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__persons"], "unique_id": "model.klaviyo.klaviyo__persons", "raw_code": "with person as (\n\n select *\n from {{ var('person') }}\n),\n\nperson_metrics as (\n\n select *\n from {{ ref('int_klaviyo__person_metrics') }}\n),\n\nperson_join as (\n\n select\n person.*,\n {{ dbt_utils.star(from=ref('int_klaviyo__person_metrics'), except=[\"person_id\", \"source_relation\"]) }}\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__persons.sql", "original_file_path": "models/klaviyo__persons.sql", "name": "klaviyo__persons", "alias": "klaviyo__persons", "checksum": {"name": "sha256", "checksum": "4228e8c8280040f57997ecd7d0cd1c726cee6789721533903c2f75ad6cefc473"}, "tags": [], "refs": [["stg_klaviyo__person"], ["int_klaviyo__person_metrics"], ["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "Table of unique person profiles, enhanced with event, campaign, flow, and revenue metrics. \n**Counts** of instances of triggered events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__persons.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.672087, "compiled_code": "with person as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\nperson_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\n),\n\nperson_join as (\n\n select\n person.*,\n \"count_total_campaigns\",\n \"count_total_flows\",\n \"first_event_at\",\n \"last_event_at\",\n \"first_campaign_touch_at\",\n \"last_campaign_touch_at\",\n \"first_flow_touch_at\",\n \"last_flow_touch_at\",\n \"total_sum_revenue_refunded_order\",\n \"organic_sum_revenue_refunded_order\",\n \"total_sum_revenue_placed_order\",\n \"organic_sum_revenue_placed_order\",\n \"total_sum_revenue_ordered_product\",\n \"organic_sum_revenue_ordered_product\",\n \"total_sum_revenue_checkout_started\",\n \"organic_sum_revenue_checkout_started\",\n \"total_sum_revenue_cancelled_order\",\n \"organic_sum_revenue_cancelled_order\",\n \"total_count_active_on_site\",\n \"total_count_viewed_product\",\n \"total_count_ordered_product\",\n \"total_count_placed_order\",\n \"total_count_refunded_order\",\n \"total_count_cancelled_order\",\n \"total_count_fulfilled_order\",\n \"total_count_received_email\",\n \"total_count_clicked_email\",\n \"total_count_opened_email\",\n \"total_count_bounced_email\",\n \"total_count_marked_email_as_spam\",\n \"total_count_dropped_email\",\n \"total_count_subscribed_to_list\",\n \"total_count_unsubscribed_to_list\",\n \"total_count_unsubscribed\",\n \"total_count_updated_email_preferences\",\n \"total_count_subscribed_to_back_in_stock\",\n \"total_count_merged_profile\",\n \"total_count_received_sms\",\n \"total_count_clicked_sms\",\n \"total_count_consented_to_receive_sms\",\n \"total_count_sent_sms\",\n \"total_count_unsubscribed_from_sms\",\n \"total_count_failed_to_deliver_sms\"\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\""}, "model.klaviyo.klaviyo__flows": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__flows"], "unique_id": "model.klaviyo.klaviyo__flows", "raw_code": "with flow as (\n\n select *\n from {{ var('flow') }}\n),\n\nflow_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\nflow_join as (\n \n {% set exclude_fields = ['last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n flow.*, -- has flow_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['flow_id','variation_id']) }} as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__flows.sql", "original_file_path": "models/klaviyo__flows.sql", "name": "klaviyo__flows", "alias": "klaviyo__flows", "checksum": {"name": "sha256", "checksum": "8817e15a1759539ac4c9093b2f7ac78c43444e5dd502a51b0372e74eecc59a85"}, "tags": [], "refs": [["stg_klaviyo__flow"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique flow versions. A flow with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"flow_variation_key": {"name": "flow_variation_key", "description": "Unique key hashed on the flow and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__flows.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.66625, "compiled_code": "with flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nflow_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\nflow_join as (\n \n \n\n select\n flow.*, -- has flow_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(flow_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\""}, "model.klaviyo.klaviyo__campaigns": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__campaigns"], "unique_id": "model.klaviyo.klaviyo__campaigns", "raw_code": "with campaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\ncampaign_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\ncampaign_join as (\n \n {% set exclude_fields = [ 'last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n campaign.*, -- has campaign_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['campaign_id','variation_id']) }} as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__campaigns.sql", "original_file_path": "models/klaviyo__campaigns.sql", "name": "klaviyo__campaigns", "alias": "klaviyo__campaigns", "checksum": {"name": "sha256", "checksum": "5339678a1118c92336a1f5f30e28a6d5025c4a316daaeea450636ec0d9ffd7ff"}, "tags": [], "refs": [["stg_klaviyo__campaign"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique campaign versions. A campaign with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"campaign_variation_key": {"name": "campaign_variation_key", "description": "Unique key hashed on the campaign and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__campaigns.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1666978250.663269, "compiled_code": "with campaign as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\ncampaign_metrics as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\ncampaign_join as (\n \n \n\n select\n campaign.*, -- has campaign_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(campaign_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\""}, "model.klaviyo.klaviyo__events": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.star", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_klaviyo", "fqn": ["klaviyo", "klaviyo__events"], "unique_id": "model.klaviyo.klaviyo__events", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('snowflake', 'postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from {{ ref('int_klaviyo__event_attribution') }}\n\n {% if is_incremental() %}\n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n {% endif %}\n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n {% set exclude_fields = ['touch_session', 'last_touch_id', 'session_start_at', 'session_event_type', 'type', 'session_touch_type'] %}\n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n {{ dbt_utils.star(from=ref('int_klaviyo__event_attribution'), except=exclude_fields) }},\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\nflow as (\n\n select *\n from {{ var('flow') }}\n),\n\nperson as (\n\n select *\n from {{ var('person') }}\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from {{ var('metric') }}\n),\n\nintegration as (\n\n select *\n from {{ var('integration') }}\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__events.sql", "original_file_path": "models/klaviyo__events.sql", "name": "klaviyo__events", "alias": "klaviyo__events", "checksum": {"name": "sha256", "checksum": "b58f0fa005e289d64b3588e298df678566c7b8921c3e97b4612f3339899292ba"}, "tags": [], "refs": [["int_klaviyo__event_attribution"], ["int_klaviyo__event_attribution"], ["stg_klaviyo__campaign"], ["stg_klaviyo__flow"], ["stg_klaviyo__person"], ["stg_klaviyo__metric"], ["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "Table of Klaviyo events, enriched with attribution data (see `int_klaviyo__event_attribution` for details), and information regarding the event's associated user, flow, campaign, and platform/integration. \nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_at": {"name": "last_touch_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This will be null if the event is not attributed to any flow or campaign. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms). This will be null if the event is not attributed to any flow or campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_city": {"name": "person_city", "description": "City that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_country": {"name": "person_country", "description": "Country that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_region": {"name": "person_region", "description": "Region or state that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_email": {"name": "person_email", "description": "The email address and the unique identifier for the person who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_timezone": {"name": "person_timezone", "description": "Timezone that the person who triggered this event is situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the platform that triggered the event (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_category": {"name": "integration_category", "description": "Use-case category of the platform that sent the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__events.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.656723, "compiled_code": "\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n\n \n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n \n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n \n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n \"variation_id\",\n \"campaign_id\",\n \"occurred_at\",\n \"flow_id\",\n \"flow_message_id\",\n \"event_id\",\n \"metric_id\",\n \"person_id\",\n \"uuid\",\n \"numeric_value\",\n \"_fivetran_synced\",\n \"source_relation\",\n \"occurred_on\",\n \"unique_event_id\",\n \"touch_id\",\n \"touch_type\",\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\nflow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nperson as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\n),\n\nintegration as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\""}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__campaign_flow_metrics"], "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any person-level metrics to the flow/campaign level\n , sum( {{ col.name }} ) as {{ col.name }}\n\n {% if 'sum_revenue' not in col.name|lower %} -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when {{ col.name }} > 0 then 1 else 0 end) as {{ 'unique_' ~ col.name }}\n\n {% endif %}\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__campaign_flow_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "name": "int_klaviyo__campaign_flow_metrics", "alias": "int_klaviyo__campaign_flow_metrics", "checksum": {"name": "sha256", "checksum": "05f2223e2d8ab2cbcb57045b3008aee2e9c74f1803cb5e3b658b8b92b7b22e9d"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the campaign or flow AND variation grain. A campaign with A/B versions will have 2 records. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1666978250.7065659, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_refunded_order ) as sum_revenue_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_placed_order ) as sum_revenue_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_ordered_product ) as sum_revenue_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_checkout_started ) as sum_revenue_checkout_started\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_cancelled_order ) as sum_revenue_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_active_on_site ) as count_active_on_site\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_active_on_site > 0 then 1 else 0 end) as unique_count_active_on_site\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_viewed_product ) as count_viewed_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_viewed_product > 0 then 1 else 0 end) as unique_count_viewed_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_ordered_product ) as count_ordered_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_ordered_product > 0 then 1 else 0 end) as unique_count_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_placed_order ) as count_placed_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_placed_order > 0 then 1 else 0 end) as unique_count_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_refunded_order ) as count_refunded_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_refunded_order > 0 then 1 else 0 end) as unique_count_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_cancelled_order ) as count_cancelled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_cancelled_order > 0 then 1 else 0 end) as unique_count_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_fulfilled_order ) as count_fulfilled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_fulfilled_order > 0 then 1 else 0 end) as unique_count_fulfilled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_email ) as count_received_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_email > 0 then 1 else 0 end) as unique_count_received_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_email ) as count_clicked_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_email > 0 then 1 else 0 end) as unique_count_clicked_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_opened_email ) as count_opened_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_opened_email > 0 then 1 else 0 end) as unique_count_opened_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_bounced_email ) as count_bounced_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_bounced_email > 0 then 1 else 0 end) as unique_count_bounced_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_marked_email_as_spam ) as count_marked_email_as_spam\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_marked_email_as_spam > 0 then 1 else 0 end) as unique_count_marked_email_as_spam\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_dropped_email ) as count_dropped_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_dropped_email > 0 then 1 else 0 end) as unique_count_dropped_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_list ) as count_subscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_list > 0 then 1 else 0 end) as unique_count_subscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_to_list ) as count_unsubscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_to_list > 0 then 1 else 0 end) as unique_count_unsubscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed ) as count_unsubscribed\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed > 0 then 1 else 0 end) as unique_count_unsubscribed\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_updated_email_preferences ) as count_updated_email_preferences\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_updated_email_preferences > 0 then 1 else 0 end) as unique_count_updated_email_preferences\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_back_in_stock ) as count_subscribed_to_back_in_stock\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_back_in_stock > 0 then 1 else 0 end) as unique_count_subscribed_to_back_in_stock\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_merged_profile ) as count_merged_profile\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_merged_profile > 0 then 1 else 0 end) as unique_count_merged_profile\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_sms ) as count_received_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_sms > 0 then 1 else 0 end) as unique_count_received_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_sms ) as count_clicked_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_sms > 0 then 1 else 0 end) as unique_count_clicked_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_consented_to_receive_sms ) as count_consented_to_receive_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_consented_to_receive_sms > 0 then 1 else 0 end) as unique_count_consented_to_receive_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_sent_sms ) as count_sent_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_sent_sms > 0 then 1 else 0 end) as unique_count_sent_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_from_sms ) as count_unsubscribed_from_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_from_sms > 0 then 1 else 0 end) as unique_count_unsubscribed_from_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_failed_to_deliver_sms ) as count_failed_to_deliver_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_failed_to_deliver_sms > 0 then 1 else 0 end) as unique_count_failed_to_deliver_sms\n\n \n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\""}, "model.klaviyo.int_klaviyo__person_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__person_metrics"], "unique_id": "model.klaviyo.int_klaviyo__person_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( {{ col.name }} ) as {{ 'total_' ~ col.name }}\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n {% if 'sum_revenue' in col.name|lower %}\n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then {{ col.name }} else 0 end ) as {{ 'organic_' ~ col.name }}\n {% endif %}\n\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__person_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__person_metrics.sql", "name": "int_klaviyo__person_metrics", "alias": "int_klaviyo__person_metrics", "checksum": {"name": "sha256", "checksum": "a17b4d3bfd7f6a19bc40dc8199f22c30594994645f31cc2bd72280e8ac429259"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the person grain. \n**Counts** of instances of the events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. \nThese columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__person_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1666978250.70891, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_refunded_order ) as total_sum_revenue_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_refunded_order else 0 end ) as organic_sum_revenue_refunded_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_placed_order ) as total_sum_revenue_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_placed_order else 0 end ) as organic_sum_revenue_placed_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_ordered_product ) as total_sum_revenue_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_ordered_product else 0 end ) as organic_sum_revenue_ordered_product\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_checkout_started ) as total_sum_revenue_checkout_started\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_checkout_started else 0 end ) as organic_sum_revenue_checkout_started\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_cancelled_order ) as total_sum_revenue_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_cancelled_order else 0 end ) as organic_sum_revenue_cancelled_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_active_on_site ) as total_count_active_on_site\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_viewed_product ) as total_count_viewed_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_ordered_product ) as total_count_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_placed_order ) as total_count_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_refunded_order ) as total_count_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_cancelled_order ) as total_count_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_fulfilled_order ) as total_count_fulfilled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_email ) as total_count_received_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_email ) as total_count_clicked_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_opened_email ) as total_count_opened_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_bounced_email ) as total_count_bounced_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_marked_email_as_spam ) as total_count_marked_email_as_spam\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_dropped_email ) as total_count_dropped_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_list ) as total_count_subscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_to_list ) as total_count_unsubscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed ) as total_count_unsubscribed\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_updated_email_preferences ) as total_count_updated_email_preferences\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_back_in_stock ) as total_count_subscribed_to_back_in_stock\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_merged_profile ) as total_count_merged_profile\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_sms ) as total_count_received_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_sms ) as total_count_clicked_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_consented_to_receive_sms ) as total_count_consented_to_receive_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_sent_sms ) as total_count_sent_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_from_sms ) as total_count_unsubscribed_from_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_failed_to_deliver_sms ) as total_count_failed_to_deliver_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\""}, "model.klaviyo.int_klaviyo__event_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__event_attribution"], "unique_id": "model.klaviyo.int_klaviyo__event_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from {{ var('event_table') }}\n\n {% if is_incremental() %}\n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from {{ var('event_table') }}\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n {% endif %}\n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when {{ dbt.datediff('session_start_at', 'occurred_at', 'hour') }} <= (\n case \n when lower(session_event_type) like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__event_attribution.sql", "original_file_path": "models/intermediate/int_klaviyo__event_attribution.sql", "name": "int_klaviyo__event_attribution", "alias": "int_klaviyo__event_attribution", "checksum": {"name": "sha256", "checksum": "1f480b6b2d20e722233a9b0067f3bb54cb49300094e2cc39e6597cbca1c04f05"}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "Table enriching events with an additional layer of last-touch attribution. Though Klaviyo already performs attribution on events each day, this extra step is necessary, as certain kinds of events/metrics never get attributed to flows or campaigns via Klaviyo's internal model. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with conversions. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. Note that this refers to the events eligible to credit campaigns and flows with conversions, _not_ the events eligible to receive attribution (all kinds of events are privy to this).\nSimilar to Klaviyo, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_session": {"name": "touch_session", "description": "ID used to batch an individual person's events into attribution-groups. Each event that comes attributed to a campaign or flow begins a new session/batch, in which the following events without a flow/campaign_id have the same `touch_session` (and may be attributed to the same flow/campaign).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_start_at": {"name": "session_start_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This is the beginning of the event's touch-session.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_event_type": {"name": "session_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_id": {"name": "last_touch_id", "description": "The campaign or flow that the package attributed the event to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__event_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "int_klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.7048929, "compiled_code": "\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n\n \n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n \n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when \n (\n ((occurred_at)::date - (session_start_at)::date)\n * 24 + date_part('hour', (occurred_at)::timestamp) - date_part('hour', (session_start_at)::timestamp))\n <= (\n case \n when lower(session_event_type) like '%sms%' then 24\n else 120 end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\""}, "model.shopify.shopify__customer_cohorts": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__customer_cohorts"], "unique_id": "model.shopify.shopify__customer_cohorts", "raw_code": "with calendar as (\n\n select *\n from {{ ref('shopify__calendar') }}\n where cast({{ dbt.date_trunc('month','date_day') }} as date) = date_day\n\n), customers as (\n\n select *\n from {{ ref('shopify__customers') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n {{ dbt.date_trunc('month', 'first_order_timestamp') }} as cohort_month\n from calendar\n inner join customers\n on cast({{ dbt.date_trunc('month', 'first_order_timestamp') }} as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast({{ dbt.date_trunc('month', 'created_timestamp') }} as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n {% set partition_string = 'partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row' %}\n\n select\n *,\n sum(total_price_in_month) over ({{ partition_string }}) as total_price_lifetime,\n sum(order_count_in_month) over ({{ partition_string }}) as order_count_lifetime,\n sum(line_item_count_in_month) over ({{ partition_string }}) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n {{ dbt_utils.generate_surrogate_key(['date_month','customer_id','source_relation']) }} as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customer_cohorts.sql", "original_file_path": "models/shopify__customer_cohorts.sql", "name": "shopify__customer_cohorts", "alias": "shopify__customer_cohorts", "checksum": {"name": "sha256", "checksum": "97387e363d6fb5bfad38ffaabbcd3a54bd3afb18648a1e002b151f7d7658f7f7"}, "tags": [], "refs": [["shopify__calendar"], ["shopify__customers"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a customer's performance in a calendar month.", "columns": {"cohort_month": {"name": "cohort_month", "description": "The month the cohort belongs to, i.e the first month the customer had an order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cohort_month_number": {"name": "cohort_month_number", "description": "The 'number' of the `date_month` of the record, i.e. how many months from their start month this cohort occurred", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_cohort_id": {"name": "customer_cohort_id", "description": "Unique key representing a customer in a given month.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the related customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "date_month": {"name": "date_month", "description": "The calendar month the customer stats relate to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp of the customer's first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_in_month": {"name": "line_item_count_in_month", "description": "Number of line items purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_lifetime": {"name": "line_item_count_lifetime", "description": "Number of line items purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_in_month": {"name": "order_count_in_month", "description": "Number of orders purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_lifetime": {"name": "order_count_lifetime", "description": "Number of orders purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_in_month": {"name": "total_price_in_month", "description": "Total amount (in currency) purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_lifetime": {"name": "total_price_lifetime", "description": "Total amount (in currency) up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customer_cohorts.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7290711, "compiled_code": "with calendar as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__calendar\"\n where cast(date_trunc('month', date_day) as date) = date_day\n\n), customers as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n\n), orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n date_trunc('month', first_order_timestamp) as cohort_month\n from calendar\n inner join customers\n on cast(date_trunc('month', first_order_timestamp) as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast(date_trunc('month', created_timestamp) as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n \n\n select\n *,\n sum(total_price_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as total_price_lifetime,\n sum(order_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as order_count_lifetime,\n sum(line_item_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n \n \nmd5(cast(coalesce(cast(date_month as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(customer_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\""}, "model.shopify.shopify__orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.json_parse", "macro.dbt.type_float"], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__orders__order_line_aggregates", "model.shopify_source.stg_shopify__order_adjustment", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__orders"], "unique_id": "model.shopify.shopify__orders", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__orders__order_line_aggregates') }}\n\n{% if var('shopify__using_order_adjustment', true) %}\n), order_adjustments as (\n\n select *\n from {{ var('shopify_order_adjustment') }}\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n{% endif %}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast({{ fivetran_utils.json_parse(\"total_shipping_price_set\",[\"shop_money\",\"amount\"]) }} as {{ dbt.type_float() }}) ,0) as shipping_cost,\n \n {% if var('shopify__using_order_adjustment', true) %}\n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n {% endif %}\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n {% endif %}\n (orders.total_price\n {% if var('shopify__using_order_adjustment', true) %}\n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n {% endif %}\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n {% endif %} ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n {% endif %}\n {% if var('shopify__using_order_adjustment', true) %}\n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n {% endif %}\n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__orders.sql", "original_file_path": "models/shopify__orders.sql", "name": "shopify__orders", "alias": "shopify__orders", "checksum": {"name": "sha256", "checksum": "423b0e297b935b36fa5e577280eb50c3a60dee686bf91546caaa81c7d8ff6afb"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__orders__order_line_aggregates"], ["stg_shopify__order_adjustment"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7448, "compiled_code": "with __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n), __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), order_lines as (\n\n select *\n from __dbt__cte__shopify__orders__order_line_aggregates\n\n\n), order_adjustments as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\"\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast(\n\n total_shipping_price_set::json #>> '{shop_money,amount}'\n\n as FLOAT) ,0) as shipping_cost,\n \n \n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n \n\n \n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n \n (orders.total_price\n \n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n \n \n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n \n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n \n \n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n \n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}, {"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\""}, "model.shopify.shopify__products": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__product", "model.shopify.shopify__order_lines", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__products"], "unique_id": "model.shopify.shopify__products", "raw_code": "with products as (\n\n select *\n from {{ var('shopify_product') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders')}}\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n {% endif %}\n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n {% endif %}\n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__products.sql", "original_file_path": "models/shopify__products.sql", "name": "shopify__products", "alias": "shopify__products", "checksum": {"name": "sha256", "checksum": "e699f3d418cc215e557b5a7ad0705f82470c62c8b54b3fbb29a2896c507ba033"}, "tags": [], "refs": [["stg_shopify__product"], ["shopify__order_lines"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold": {"name": "quantity_sold", "description": "Quantity of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold": {"name": "subtotal_sold", "description": "Total amount of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold_net_refunds": {"name": "quantity_sold_net_refunds", "description": "Quantity of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold_net_refunds": {"name": "subtotal_sold_net_refunds", "description": "Total amount of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the product was first ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the product was most recently ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__products.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.782243, "compiled_code": "with products as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n\n), orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n \n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n \n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n \n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n \n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__products\""}, "model.shopify.shopify__transactions": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.json_parse", "macro.dbt.type_numeric"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__transactions"], "unique_id": "model.shopify.shopify__transactions", "raw_code": "with transactions as (\n select *\n from {{ var('shopify_transaction') }}\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) as exchange_rate,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__transactions.sql", "original_file_path": "models/shopify__transactions.sql", "name": "shopify__transactions", "alias": "shopify__transactions", "checksum": {"name": "sha256", "checksum": "bd6f41006c7d0c20a0d1fbcbc684f1487570f12e7139030ea4f1e39b2ef521b9"}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of the date the record was synced by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate between the home currency and the currency of sale at the time of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_calculated_amount": {"name": "currency_exchange_calculated_amount", "description": "The total amount of the transaction with the currency exchange rate applied.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__transactions.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.7986162, "compiled_code": "with transactions as (\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\"\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) as exchange_rate,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\""}, "model.shopify.shopify__customers": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer", "model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__customers"], "unique_id": "model.shopify.shopify__customers", "raw_code": "with customers as (\n\n select \n {{ dbt_utils.star(from=ref('stg_shopify__customer'), except=[\"orders_count\", \"total_spent\"]) }}\n from {{ var('shopify_customer') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__customers__order_aggregates' )}}\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customers.sql", "original_file_path": "models/shopify__customers.sql", "name": "shopify__customers", "alias": "shopify__customers", "checksum": {"name": "sha256", "checksum": "70e28dce05bc26f7fc7678928e4bf4ab455d399c6f314f54d3c4671be96d3b7e"}, "tags": [], "refs": [["stg_shopify__customer"], ["stg_shopify__customer"], ["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customers.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.74929, "compiled_code": "with __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),customers as (\n\n select \n \"_fivetran_synced\",\n \"has_accepted_marketing\",\n \"created_timestamp\",\n \"default_address_id\",\n \"email\",\n \"first_name\",\n \"customer_id\",\n \"last_name\",\n \"phone\",\n \"account_state\",\n \"is_tax_exempt\",\n \"updated_timestamp\",\n \"is_verified_email\",\n \"source_relation\"\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\"\n\n), orders as (\n\n select *\n from __dbt__cte__shopify__customers__order_aggregates\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\""}, "model.shopify.shopify__order_lines": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "shopify__order_lines"], "unique_id": "model.shopify.shopify__order_lines", "raw_code": "with order_lines as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), product_variants as (\n\n select *\n from {{ var('shopify_product_variant') }}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n order_lines.*,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n {% endif %}\n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n {% endif %}\n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__order_lines.sql", "original_file_path": "models/shopify__order_lines.sql", "name": "shopify__order_lines", "alias": "shopify__order_lines", "checksum": {"name": "sha256", "checksum": "c9fa8308e1257375b69ec4b40135a4d1ad64fab1d9e0c14b7a353132438df5d8"}, "tags": [], "refs": [["stg_shopify__order_line"], ["stg_shopify__product_variant"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents a line item of an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_quantity": {"name": "refunded_quantity", "description": "Quantity of the item that has been refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_net_refunds": {"name": "quantity_net_refunds", "description": "Quantity ordered, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_barcode": {"name": "variant_barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_compare_at_price": {"name": "variant_compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_created_at": {"name": "variant_created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_fulfillment_service": {"name": "variant_fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_grams": {"name": "variant_grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_image_id": {"name": "variant_image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_management": {"name": "variant_inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_policy": {"name": "variant_inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_quantity": {"name": "variant_inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_1": {"name": "variant_option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_2": {"name": "variant_option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_3": {"name": "variant_option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_position": {"name": "variant_position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_price": {"name": "variant_price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_requiring_shipping": {"name": "variant_is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_sku": {"name": "variant_sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_taxable": {"name": "variant_is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_title": {"name": "variant_title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_updated_at": {"name": "variant_updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight": {"name": "variant_weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight_unit": {"name": "variant_weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_subtotal": {"name": "refunded_subtotal", "description": "Subtotal amount of the refund applied to the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_net_refunds": {"name": "subtotal_net_refunds", "description": "Subtotal of the order line with refunds subtracted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "Image id of the product variant associated with the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__order_lines.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.791569, "compiled_code": "with __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), product_variants as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\"\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n order_lines.*,\n\n \n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n \n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n \n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n \n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\""}, "model.shopify.shopify__calendar": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_spine"], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "utils", "shopify__calendar"], "unique_id": "model.shopify.shopify__calendar", "raw_code": "{{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=\"cast('2019-01-01' as date)\",\n end_date=\"current_date\"\n )\n}}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "utils/shopify__calendar.sql", "original_file_path": "models/utils/shopify__calendar.sql", "name": "shopify__calendar", "alias": "shopify__calendar", "checksum": {"name": "sha256", "checksum": "330711091f6b47526ac5e8bc39960b2d171633362c0e10b666931be500abeddd"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/utils/shopify__calendar.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1666978250.2859719, "compiled_code": "\n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n + \n \n p5.generated_number * power(2, 5)\n + \n \n p6.generated_number * power(2, 6)\n + \n \n p7.generated_number * power(2, 7)\n + \n \n p8.generated_number * power(2, 8)\n + \n \n p9.generated_number * power(2, 9)\n + \n \n p10.generated_number * power(2, 10)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n cross join \n \n p as p5\n cross join \n \n p as p6\n cross join \n \n p as p7\n cross join \n \n p as p8\n cross join \n \n p as p9\n cross join \n \n p as p10\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 1396\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n cast('2019-01-01' as date) + ((interval '1 day') * (row_number() over (order by 1) - 1))\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= current_date\n\n)\n\nselect * from filtered\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__calendar\""}, "model.shopify.shopify__orders__order_line_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_line_aggregates"], "unique_id": "model.shopify.shopify__orders__order_line_aggregates", "raw_code": "with order_line as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_line_aggregates.sql", "original_file_path": "models/intermediate/shopify__orders__order_line_aggregates.sql", "name": "shopify__orders__order_line_aggregates", "alias": "shopify__orders__order_line_aggregates", "checksum": {"name": "sha256", "checksum": "837181b671b2beb8e58924357d213e33d6479a47e16c604db35cbb6ce6489fa8"}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_line_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1666978250.819801, "compiled_code": "with order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__customers__order_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__customers__order_aggregates"], "unique_id": "model.shopify.shopify__customers__order_aggregates", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), transactions as (\n\n select *\n from {{ ref('shopify__transactions' )}}\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__customers__order_aggregates.sql", "original_file_path": "models/intermediate/shopify__customers__order_aggregates.sql", "name": "shopify__customers__order_aggregates", "alias": "shopify__customers__order_aggregates", "checksum": {"name": "sha256", "checksum": "902e082d29e1b00c443c6d18109a496dc53a1a7e927134bc8a523cdc106076bd"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__customers__order_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1666978250.819477, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__orders__order_refunds": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_refunds"], "unique_id": "model.shopify.shopify__orders__order_refunds", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['shopify__using_order_line_refund','shopify__using_refund'])) }}\n\nwith refunds as (\n\n select *\n from {{ var('shopify_refund') }}\n\n), order_line_refunds as (\n\n select *\n from {{ var('shopify_order_line_refund') }}\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_refunds.sql", "original_file_path": "models/intermediate/shopify__orders__order_refunds.sql", "name": "shopify__orders__order_refunds", "alias": "shopify__orders__order_refunds", "checksum": {"name": "sha256", "checksum": "1bcc3be258e3bdda4c6845e465f95e7e5b4e0eee823b169e0cd5e7eff4cf7792"}, "tags": [], "refs": [["stg_shopify__refund"], ["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_refunds.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral", "enabled": true}, "created_at": 1666978250.82009, "compiled_code": "\n\nwith refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__customer_enhanced"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "raw_code": "with shopify_customers as (\n\n select *\n from {{ ref('int__shopify_customer_rollup') }}\n\n), klaviyo_persons as (\n\n select *\n from {{ ref('int__klaviyo_person_rollup') }}\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n {{ dbt_utils.star(from=ref('int__shopify_customer_rollup'), relation_alias='shopify_customers', prefix='shopify_',\n except=['source_relation','email', 'full_name', 'customer_ids', 'phone_numbers', 'first_shopify_account_made_at','last_shopify_account_made_at', \n 'last_updated_at', 'is_verified_email'] ) \n }},\n shopify_customers.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__klaviyo_person_rollup'), relation_alias='klaviyo_persons', prefix='klaviyo_',\n except=['source_relation','email', 'full_name', 'first_klaviyo_account_made_at', 'last_klaviyo_account_made_at', 'person_ids', 'phone_numbers', 'last_updated_at'] ) \n }},\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__customer_enhanced.sql", "original_file_path": "models/shopify_holistic_reporting__customer_enhanced.sql", "name": "shopify_holistic_reporting__customer_enhanced", "alias": "shopify_holistic_reporting__customer_enhanced", "checksum": {"name": "sha256", "checksum": "db442dfeedb2bb460e284b8e3d2742abc3f9ae90d8db670d6019afc567b53a09"}, "tags": [], "refs": [["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"], ["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"]], "sources": [], "metrics": [], "description": "Table consolidating customers and their information and activity metrics from across all platforms. A full outer join is performed in order to union together users who may not exist in both sources, and personal information is coalesced to consolidate as much information as possible. Includes any custom columns specified in passthrough variables for both Shopify and Klaviyo.\nFor **Klaviyo** metrics: Counts of instances of triggered events and sums of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the klaviyo__count_metrics and klaviyo__sum_revenue_metricsvariables, respectively. See the Klaviyo dbt_project.yml file for the default metrics used. These columns will be prefixed with total_count_, total_sum_revenue_ (organic + attributed), and organic_sum_revenue_ (not attributed to a campaign or flow).\nColumns that come _only_ from one source will be prefixed with that source name (ie klaviyo_)\n", "columns": {"shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_has_accepted_marketing": {"name": "shopify_has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_first_created_at": {"name": "shopify_customer_first_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_created_at": {"name": "shopify_customer_last_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_updated_at": {"name": "shopify_customer_last_updated_at", "description": "Timestamp of when the shopify customer was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_default_address_id": {"name": "shopify_default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_ids": {"name": "shopify_customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_count_orders": {"name": "shopify_lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "The unique phone number (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_account_state": {"name": "shopify_account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_is_tax_exempt": {"name": "shopify_is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_updated_at": {"name": "shopify_last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_shopify_email_verified": {"name": "is_shopify_email_verified", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_first_order_at": {"name": "shopify_first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_order_at": {"name": "shopify_last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_average_order_value": {"name": "shopify_average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_spent": {"name": "shopify_lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_refunded": {"name": "shopify_lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_amount": {"name": "shopify_lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_id": {"name": "klaviyo_person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_1": {"name": "klaviyo_address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_2": {"name": "klaviyo_address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_city": {"name": "klaviyo_city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_country": {"name": "klaviyo_country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_zip": {"name": "klaviyo_zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_created_at": {"name": "klaviyo_person_created_at", "description": "Timestamp of when the person's profile was created in Klaviyo.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_latitude": {"name": "klaviyo_latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_longitude": {"name": "klaviyo_longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_organization": {"name": "klaviyo_organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_region": {"name": "klaviyo_region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_timezone": {"name": "klaviyo_timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_title": {"name": "klaviyo_title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_updated_at": {"name": "klaviyo_person_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_campaigns": {"name": "klaviyo_count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_flows": {"name": "klaviyo_count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_campaign_touch_at": {"name": "klaviyo_first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_campaign_touch_at": {"name": "klaviyo_last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_flow_touch_at": {"name": "klaviyo_first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_flow_touch_at": {"name": "klaviyo_last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__customer_enhanced.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1666978250.840069, "compiled_code": "with shopify_customers as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__shopify_customer_rollup\"\n\n), klaviyo_persons as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__klaviyo_person_rollup\"\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n shopify_customers.\"first_order_at\" as \"shopify_first_order_at\",\n shopify_customers.\"last_order_at\" as \"shopify_last_order_at\",\n shopify_customers.\"lifetime_total_spent\" as \"shopify_lifetime_total_spent\",\n shopify_customers.\"lifetime_total_refunded\" as \"shopify_lifetime_total_refunded\",\n shopify_customers.\"lifetime_total_amount\" as \"shopify_lifetime_total_amount\",\n shopify_customers.\"lifetime_count_orders\" as \"shopify_lifetime_count_orders\",\n shopify_customers.\"average_order_value\" as \"shopify_average_order_value\",\n shopify_customers.\"has_accepted_marketing\" as \"shopify_has_accepted_marketing\",\n shopify_customers.\"is_tax_exempt\" as \"shopify_is_tax_exempt\",\n shopify_customers.\"default_address_id\" as \"shopify_default_address_id\",\n shopify_customers.\"account_state\" as \"shopify_account_state\",\n shopify_customers.source_relation as shopify_source_relation,\n\n klaviyo_persons.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_persons.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_persons.\"first_campaign_touch_at\" as \"klaviyo_first_campaign_touch_at\",\n klaviyo_persons.\"last_campaign_touch_at\" as \"klaviyo_last_campaign_touch_at\",\n klaviyo_persons.\"first_flow_touch_at\" as \"klaviyo_first_flow_touch_at\",\n klaviyo_persons.\"last_flow_touch_at\" as \"klaviyo_last_flow_touch_at\",\n klaviyo_persons.\"count_total_campaigns\" as \"klaviyo_count_total_campaigns\",\n klaviyo_persons.\"count_total_flows\" as \"klaviyo_count_total_flows\",\n klaviyo_persons.\"address_1\" as \"klaviyo_address_1\",\n klaviyo_persons.\"address_2\" as \"klaviyo_address_2\",\n klaviyo_persons.\"city\" as \"klaviyo_city\",\n klaviyo_persons.\"country\" as \"klaviyo_country\",\n klaviyo_persons.\"zip\" as \"klaviyo_zip\",\n klaviyo_persons.\"latitude\" as \"klaviyo_latitude\",\n klaviyo_persons.\"longitude\" as \"klaviyo_longitude\",\n klaviyo_persons.\"organization\" as \"klaviyo_organization\",\n klaviyo_persons.\"region\" as \"klaviyo_region\",\n klaviyo_persons.\"timezone\" as \"klaviyo_timezone\",\n klaviyo_persons.\"title\" as \"klaviyo_title\",\n klaviyo_persons.\"total_sum_revenue_refunded_order\" as \"klaviyo_total_sum_revenue_refunded_order\",\n klaviyo_persons.\"organic_sum_revenue_refunded_order\" as \"klaviyo_organic_sum_revenue_refunded_order\",\n klaviyo_persons.\"total_sum_revenue_placed_order\" as \"klaviyo_total_sum_revenue_placed_order\",\n klaviyo_persons.\"organic_sum_revenue_placed_order\" as \"klaviyo_organic_sum_revenue_placed_order\",\n klaviyo_persons.\"total_sum_revenue_ordered_product\" as \"klaviyo_total_sum_revenue_ordered_product\",\n klaviyo_persons.\"organic_sum_revenue_ordered_product\" as \"klaviyo_organic_sum_revenue_ordered_product\",\n klaviyo_persons.\"total_sum_revenue_checkout_started\" as \"klaviyo_total_sum_revenue_checkout_started\",\n klaviyo_persons.\"organic_sum_revenue_checkout_started\" as \"klaviyo_organic_sum_revenue_checkout_started\",\n klaviyo_persons.\"total_sum_revenue_cancelled_order\" as \"klaviyo_total_sum_revenue_cancelled_order\",\n klaviyo_persons.\"organic_sum_revenue_cancelled_order\" as \"klaviyo_organic_sum_revenue_cancelled_order\",\n klaviyo_persons.\"total_count_active_on_site\" as \"klaviyo_total_count_active_on_site\",\n klaviyo_persons.\"total_count_viewed_product\" as \"klaviyo_total_count_viewed_product\",\n klaviyo_persons.\"total_count_ordered_product\" as \"klaviyo_total_count_ordered_product\",\n klaviyo_persons.\"total_count_placed_order\" as \"klaviyo_total_count_placed_order\",\n klaviyo_persons.\"total_count_refunded_order\" as \"klaviyo_total_count_refunded_order\",\n klaviyo_persons.\"total_count_cancelled_order\" as \"klaviyo_total_count_cancelled_order\",\n klaviyo_persons.\"total_count_fulfilled_order\" as \"klaviyo_total_count_fulfilled_order\",\n klaviyo_persons.\"total_count_received_email\" as \"klaviyo_total_count_received_email\",\n klaviyo_persons.\"total_count_clicked_email\" as \"klaviyo_total_count_clicked_email\",\n klaviyo_persons.\"total_count_opened_email\" as \"klaviyo_total_count_opened_email\",\n klaviyo_persons.\"total_count_bounced_email\" as \"klaviyo_total_count_bounced_email\",\n klaviyo_persons.\"total_count_marked_email_as_spam\" as \"klaviyo_total_count_marked_email_as_spam\",\n klaviyo_persons.\"total_count_dropped_email\" as \"klaviyo_total_count_dropped_email\",\n klaviyo_persons.\"total_count_subscribed_to_list\" as \"klaviyo_total_count_subscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed_to_list\" as \"klaviyo_total_count_unsubscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed\" as \"klaviyo_total_count_unsubscribed\",\n klaviyo_persons.\"total_count_updated_email_preferences\" as \"klaviyo_total_count_updated_email_preferences\",\n klaviyo_persons.\"total_count_subscribed_to_back_in_stock\" as \"klaviyo_total_count_subscribed_to_back_in_stock\",\n klaviyo_persons.\"total_count_merged_profile\" as \"klaviyo_total_count_merged_profile\",\n klaviyo_persons.\"total_count_received_sms\" as \"klaviyo_total_count_received_sms\",\n klaviyo_persons.\"total_count_clicked_sms\" as \"klaviyo_total_count_clicked_sms\",\n klaviyo_persons.\"total_count_consented_to_receive_sms\" as \"klaviyo_total_count_consented_to_receive_sms\",\n klaviyo_persons.\"total_count_sent_sms\" as \"klaviyo_total_count_sent_sms\",\n klaviyo_persons.\"total_count_unsubscribed_from_sms\" as \"klaviyo_total_count_unsubscribed_from_sms\",\n klaviyo_persons.\"total_count_failed_to_deliver_sms\" as \"klaviyo_total_count_failed_to_deliver_sms\",\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__orders", "model.klaviyo.klaviyo__events", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_order_key", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__orders_attribution"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_order_key',\n partition_by={\n \"field\": \"created_timestamp\",\n \"data_type\": \"timestamp\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n -- just grab new + newly updated orders\n {% if is_incremental() %}\n where updated_timestamp >= (select max(updated_timestamp) from {{ this }})\n {% endif %}\n\n), events as (\n\n select \n *\n from {{ ref('klaviyo__events') }}\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n\n -- only grab the events for users who are in the new increment of orders\n {% if is_incremental() %}\n and lower(person_email) in (select distinct lower(email) from orders)\n {% endif %}\n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and {{ dbt.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= (\n case when events.type like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n {{ dbt_utils.star(from=ref('shopify__orders'), except=['source_relation']) }},\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n {{ dbt_utils.generate_surrogate_key(['order_id', 'source_relation']) }} as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__orders_attribution.sql", "original_file_path": "models/shopify_holistic_reporting__orders_attribution.sql", "name": "shopify_holistic_reporting__orders_attribution", "alias": "shopify_holistic_reporting__orders_attribution", "checksum": {"name": "sha256", "checksum": "ca9ca8a2f8194fa4b238b02db078d3e4f48b469a030f751d0d7c9a1eb4cc41dc"}, "tags": [], "refs": [["shopify__orders"], ["klaviyo__events"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Table of Shopify orders, enriched with a last-touch attribution model associating orders (as conversions) to campaigns or flows in Klaviyo. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with orders. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. \nSimilar to the Klaviyo app, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nRefer to the Klaviyo package [README](https://github.com/fivetran/dbt_klaviyo#attribution-lookback-window) for more details.\nMaterialized incrementally by default.\n", "columns": {"app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "The Klaviyo campaign that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "The Klaviyo flow that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed Klaviyo flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed Klaviyo flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of Klaviyo campaign that the order is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_id": {"name": "last_touch_event_id", "description": "Unique Klaviyo event id of the interaction the customer had with the campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_occurred_at": {"name": "last_touch_event_occurred_at", "description": "Timestamp of when the customer interacted with the attributed campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "Type of interaction that the customer had with the campaign or flow. Will be one of the event types specified by the `klaviyo__eligible_attribution_events` variable. By default, this is just email opens, email clicks, and sms opens.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_name": {"name": "last_touch_integration_name", "description": "Name of the platform that tracked the campaign/flow interaction (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_category": {"name": "last_touch_integration_category", "description": "Use-case category of the platform that sent the campaign/flow interaction event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where Klaviyo campaign/flow data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_campaign": {"name": "count_interactions_with_campaign", "description": "The count of distinct attributable events the customer had with the campaign throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_flow": {"name": "count_interactions_with_flow", "description": "The count of distinct attributable events the customer had with the flow throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__orders_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "shopify_holistic", "unique_key": "unique_order_key", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1666978250.864822, "compiled_code": "\n\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n\n -- just grab new + newly updated orders\n \n where updated_timestamp >= (select max(updated_timestamp) from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\")\n \n\n), events as (\n\n select \n *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n\n -- only grab the events for users who are in the new increment of orders\n \n and lower(person_email) in (select distinct lower(email) from orders)\n \n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and \n (\n ((orders.created_timestamp)::date - (events.occurred_at)::date)\n * 24 + date_part('hour', (orders.created_timestamp)::timestamp) - date_part('hour', (events.occurred_at)::timestamp))\n <= (\n case when events.type like '%sms%' then 24\n else 120 end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n \"order_id\",\n \"processed_timestamp\",\n \"updated_timestamp\",\n \"user_id\",\n \"total_discounts\",\n \"total_line_items_price\",\n \"total_price\",\n \"total_tax\",\n \"source_name\",\n \"subtotal_price\",\n \"has_taxes_included\",\n \"total_weight\",\n \"landing_site_base_url\",\n \"location_id\",\n \"name\",\n \"note\",\n \"number\",\n \"order_number\",\n \"cancel_reason\",\n \"cancelled_timestamp\",\n \"cart_token\",\n \"checkout_token\",\n \"closed_timestamp\",\n \"created_timestamp\",\n \"currency\",\n \"customer_id\",\n \"email\",\n \"financial_status\",\n \"fulfillment_status\",\n \"processing_method\",\n \"referring_site\",\n \"billing_address_address_1\",\n \"billing_address_address_2\",\n \"billing_address_city\",\n \"billing_address_company\",\n \"billing_address_country\",\n \"billing_address_country_code\",\n \"billing_address_first_name\",\n \"billing_address_last_name\",\n \"billing_address_latitude\",\n \"billing_address_longitude\",\n \"billing_address_name\",\n \"billing_address_phone\",\n \"billing_address_province\",\n \"billing_address_province_code\",\n \"billing_address_zip\",\n \"browser_ip\",\n \"has_buyer_accepted_marketing\",\n \"total_shipping_price_set\",\n \"shipping_address_address_1\",\n \"shipping_address_address_2\",\n \"shipping_address_city\",\n \"shipping_address_company\",\n \"shipping_address_country\",\n \"shipping_address_country_code\",\n \"shipping_address_first_name\",\n \"shipping_address_last_name\",\n \"shipping_address_latitude\",\n \"shipping_address_longitude\",\n \"shipping_address_name\",\n \"shipping_address_phone\",\n \"shipping_address_province\",\n \"shipping_address_province_code\",\n \"shipping_address_zip\",\n \"is_test_order\",\n \"token\",\n \"_fivetran_synced\",\n \"shipping_cost\",\n \"order_adjustment_amount\",\n \"order_adjustment_tax_amount\",\n \"refund_subtotal\",\n \"refund_total_tax\",\n \"order_adjusted_total\",\n \"line_item_count\",\n \"customer_order_seq_number\",\n \"new_vs_repeat\",\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n \n \nmd5(cast(coalesce(cast(order_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__daily_customer_metrics"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "raw_code": "with shopify_daily as (\n\n select *\n from {{ ref('int__daily_shopify_customer_orders') }}\n\n), klaviyo_daily as (\n\n select *\n from {{ ref('int__daily_klaviyo_user_metrics') }}\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n {{ dbt_utils.star(from=ref('int__daily_shopify_customer_orders'), relation_alias='shopify_daily', prefix='shopify_',\n except=['source_relation','date_day', 'email', 'last_touch_variation_id', 'last_touch_flow_name', 'last_touch_campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'last_touch_campaign_subject_line', 'last_touch_campaign_type']) }},\n shopify_daily.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__daily_klaviyo_user_metrics'), relation_alias='klaviyo_daily', prefix='klaviyo_',\n except=['source_relation','date_day', 'email', 'variation_id', 'flow_name', 'campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'campaign_subject_line', 'campaign_type']) }},\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__daily_customer_metrics.sql", "original_file_path": "models/shopify_holistic_reporting__daily_customer_metrics.sql", "name": "shopify_holistic_reporting__daily_customer_metrics", "alias": "shopify_holistic_reporting__daily_customer_metrics", "checksum": {"name": "sha256", "checksum": "971dcdccf88ae613b19a18bff1ebb515f480d4fd5fb1c4ae1c8cfb3c0d07072d"}, "tags": [], "refs": [["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"], ["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"]], "sources": [], "metrics": [], "description": "Table that aggregates Shopify and Klaviyo metrics to the day-customer-campaign or day-customer-flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that non-attributed (to Klaviyo at least) orders and interactions (someone with null campaign_id/flow_id) are included in this table. \nFor **Klaviyo**: **Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\nNote that 0-activity days will not appear. \n", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_orders": {"name": "shopify_total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_price": {"name": "shopify_total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_line_items": {"name": "shopify_count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_line_items_price": {"name": "shopify_total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_discounts": {"name": "shopify_total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_tax": {"name": "shopify_total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_shipping_cost": {"name": "shopify_total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_subtotal": {"name": "shopify_total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_tax": {"name": "shopify_total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_cancelled_orders": {"name": "shopify_count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_products": {"name": "shopify_count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_product_variants": {"name": "shopify_count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_sum_quantity": {"name": "shopify_sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_amount": {"name": "shopify_total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_tax_amount": {"name": "shopify_total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__daily_customer_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1666978250.845842, "compiled_code": "with shopify_daily as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_shopify_customer_orders\"\n\n), klaviyo_daily as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_klaviyo_user_metrics\"\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n shopify_daily.\"total_orders\" as \"shopify_total_orders\",\n shopify_daily.\"total_price\" as \"shopify_total_price\",\n shopify_daily.\"count_line_items\" as \"shopify_count_line_items\",\n shopify_daily.\"total_line_items_price\" as \"shopify_total_line_items_price\",\n shopify_daily.\"total_discounts\" as \"shopify_total_discounts\",\n shopify_daily.\"total_tax\" as \"shopify_total_tax\",\n shopify_daily.\"total_shipping_cost\" as \"shopify_total_shipping_cost\",\n shopify_daily.\"total_refund_subtotal\" as \"shopify_total_refund_subtotal\",\n shopify_daily.\"total_refund_tax\" as \"shopify_total_refund_tax\",\n shopify_daily.\"count_cancelled_orders\" as \"shopify_count_cancelled_orders\",\n shopify_daily.\"count_products\" as \"shopify_count_products\",\n shopify_daily.\"count_product_variants\" as \"shopify_count_product_variants\",\n shopify_daily.\"sum_quantity\" as \"shopify_sum_quantity\",\n shopify_daily.\"total_order_adjustment_amount\" as \"shopify_total_order_adjustment_amount\",\n shopify_daily.\"total_order_adjustment_tax_amount\" as \"shopify_total_order_adjustment_tax_amount\",\n shopify_daily.source_relation as shopify_source_relation,\n\n klaviyo_daily.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_daily.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_daily.\"sum_revenue_refunded_order\" as \"klaviyo_sum_revenue_refunded_order\",\n klaviyo_daily.\"sum_revenue_placed_order\" as \"klaviyo_sum_revenue_placed_order\",\n klaviyo_daily.\"sum_revenue_ordered_product\" as \"klaviyo_sum_revenue_ordered_product\",\n klaviyo_daily.\"sum_revenue_checkout_started\" as \"klaviyo_sum_revenue_checkout_started\",\n klaviyo_daily.\"sum_revenue_cancelled_order\" as \"klaviyo_sum_revenue_cancelled_order\",\n klaviyo_daily.\"count_active_on_site\" as \"klaviyo_count_active_on_site\",\n klaviyo_daily.\"count_viewed_product\" as \"klaviyo_count_viewed_product\",\n klaviyo_daily.\"count_ordered_product\" as \"klaviyo_count_ordered_product\",\n klaviyo_daily.\"count_placed_order\" as \"klaviyo_count_placed_order\",\n klaviyo_daily.\"count_refunded_order\" as \"klaviyo_count_refunded_order\",\n klaviyo_daily.\"count_received_email\" as \"klaviyo_count_received_email\",\n klaviyo_daily.\"count_clicked_email\" as \"klaviyo_count_clicked_email\",\n klaviyo_daily.\"count_opened_email\" as \"klaviyo_count_opened_email\",\n klaviyo_daily.\"count_marked_email_as_spam\" as \"klaviyo_count_marked_email_as_spam\",\n klaviyo_daily.\"count_unsubscribed\" as \"klaviyo_count_unsubscribed\",\n klaviyo_daily.\"count_received_sms\" as \"klaviyo_count_received_sms\",\n klaviyo_daily.\"count_clicked_sms\" as \"klaviyo_count_clicked_sms\",\n klaviyo_daily.\"count_sent_sms\" as \"klaviyo_count_sent_sms\",\n klaviyo_daily.\"count_unsubscribed_from_sms\" as \"klaviyo_count_unsubscribed_from_sms\",\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\""}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.enabled_vars", "macro.dbt_utils.group_by"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_shopify_customer_orders"], "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "raw_code": "with orders as (\n\n select *\n from {{ ref('shopify_holistic_reporting__orders_attribution') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( {{ dbt.date_trunc('day', 'created_timestamp') }} as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n {% endif %}\n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n {% if var('shopify__using_order_adjustment', true) %}\n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n {% endif %}\n \n\n from join_orders\n {{ dbt_utils.group_by(n=10)}}\n)\n\nselect *\nfrom daily_order_metrics", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_shopify_customer_orders.sql", "original_file_path": "models/intermediate/int__daily_shopify_customer_orders.sql", "name": "int__daily_shopify_customer_orders", "alias": "int__daily_shopify_customer_orders", "checksum": {"name": "sha256", "checksum": "b65804247d30fd6de43e7664b88ca4bec4f8dd66670d3e11f974348f7e48d361"}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"], ["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_orders": {"name": "total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_line_items": {"name": "count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_cost": {"name": "total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_subtotal": {"name": "total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_tax": {"name": "total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_cancelled_orders": {"name": "count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_products": {"name": "count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_product_variants": {"name": "count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sum_quantity": {"name": "sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_amount": {"name": "total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_tax_amount": {"name": "total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_shopify_customer_orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.884725, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( date_trunc('day', created_timestamp) as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n \n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n \n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n \n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n \n \n\n from join_orders\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\nselect *\nfrom daily_order_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_shopify_customer_orders\""}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.type_string", "macro.fivetran_utils.string_agg", "macro.fivetran_utils.max_bool"], "nodes": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__shopify_customer_rollup"], "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup", "raw_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from {{ ref('shopify__customers') }}\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"cast(customer_id as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as customer_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n {{ fivetran_utils.max_bool(\"has_accepted_marketing\") }} as has_accepted_marketing,\n {{ fivetran_utils.max_bool(\"case when customer_index = 1 then is_tax_exempt else null end\") }} as is_tax_exempt, -- since this changes every year\n {{ fivetran_utils.max_bool(\"is_verified_email\") }} as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n {% set cols = adapter.get_columns_in_relation(ref('shopify__customers')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'customer_id', 'phone', 'first_name', 'last_name', 'created_timestamp', 'first_order_timestamp', 'most_recent_order_timestamp',\n 'updated_timestamp', 'lifetime_total_spent', 'lifetime_total_refunded', 'lifetime_total_amount', 'lifetime_count_orders', 'average_order_value', 'has_accepted_marketing',\n 'is_tax_exempt', 'is_verified_email', 'default_address_id', 'account_state'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when customer_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__shopify_customer_rollup.sql", "original_file_path": "models/intermediate/int__shopify_customer_rollup.sql", "name": "int__shopify_customer_rollup", "alias": "int__shopify_customer_rollup", "checksum": {"name": "sha256", "checksum": "d37acd343225ac3650b815e17b114111489d47684a4f12cfec198eaf042b9c0f"}, "tags": [], "refs": [["shopify__customers"], ["shopify__customers"]], "sources": [], "metrics": [], "description": "Table rolling up shopify customer accounts to the email level. In theory, these should be 1:1, but under certain circumstances (ie bots) one email can be associated with multiple customer_ids.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_shopify_account_made_at": {"name": "first_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_shopify_account_made_at": {"name": "last_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_ids": {"name": "customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_at": {"name": "first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_order_at": {"name": "last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__shopify_customer_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.888824, "compiled_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n \n string_agg(cast(customer_id as TEXT), ', ')\n\n as customer_ids,\n \n string_agg(distinct cast(phone as TEXT), ', ')\n\n as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n \n\n bool_or( has_accepted_marketing )\n\n as has_accepted_marketing,\n \n\n bool_or( case when customer_index = 1 then is_tax_exempt else null end )\n\n as is_tax_exempt, -- since this changes every year\n \n\n bool_or( is_verified_email )\n\n as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__shopify_customer_rollup\""}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_klaviyo_user_metrics"], "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "raw_code": "with events as (\n\n select *\n from {{ ref('klaviyo__events') }}\n\n), pivot_out_events as (\n \n select \n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=10) }}\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_klaviyo_user_metrics.sql", "original_file_path": "models/intermediate/int__daily_klaviyo_user_metrics.sql", "name": "int__daily_klaviyo_user_metrics", "alias": "int__daily_klaviyo_user_metrics", "checksum": {"name": "sha256", "checksum": "a44be436c9e300571568f40fc3f1989ec67c7df9889088b39ca651268761e357"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_klaviyo_user_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.8794382, "compiled_code": "with events as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n\n), pivot_out_events as (\n \n select \n cast( date_trunc('day', occurred_at) as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__daily_klaviyo_user_metrics\""}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.dbt.type_string"], "nodes": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__klaviyo_person_rollup"], "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "raw_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from {{ ref('klaviyo__persons') }}\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"person_id\", \"', '\") }} as person_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone_number as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n {% set cols = adapter.get_columns_in_relation(ref('klaviyo__persons')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'person_id', 'phone_number', 'full_name', 'created_at', 'updated_at', 'count_total_campaigns', 'count_total_flows',\n 'first_event_at', 'last_event_at', 'first_campaign_touch_at', 'last_campaign_touch_at', 'first_flow_touch_at', 'last_flow_touch_at'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when person_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__klaviyo_person_rollup.sql", "original_file_path": "models/intermediate/int__klaviyo_person_rollup.sql", "name": "int__klaviyo_person_rollup", "alias": "int__klaviyo_person_rollup", "checksum": {"name": "sha256", "checksum": "a690c8461137c9efef7723af8c9b1c595075381a9e0cebff45f27c2e73425c7c"}, "tags": [], "refs": [["klaviyo__persons"], ["klaviyo__persons"]], "sources": [], "metrics": [], "description": "Table rolling up Klaviyo person accounts to the email level. In theory, these should certainly be 1:1, but under certain circumstances emails can be sent with multiple person_ids from the Klaviyo API.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_ids": {"name": "person_ids", "description": "A comma-separated aggregated list of Klaviyo IDs for the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers for this person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_klaviyo_account_made_at": {"name": "first_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_klaviyo_account_made_at": {"name": "last_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was last created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__klaviyo_person_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1666978250.894349, "compiled_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n \n string_agg(person_id, ', ')\n\n as person_ids,\n \n string_agg(distinct cast(phone_number as TEXT), ', ')\n\n as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n \n \n \n \n \n \n , max(case when person_index = 1 then address_1 else null end) as address_1\n \n \n \n , max(case when person_index = 1 then address_2 else null end) as address_2\n \n \n \n , max(case when person_index = 1 then city else null end) as city\n \n \n \n , max(case when person_index = 1 then country else null end) as country\n \n \n \n , max(case when person_index = 1 then zip else null end) as zip\n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then latitude else null end) as latitude\n \n \n \n , max(case when person_index = 1 then longitude else null end) as longitude\n \n \n \n , max(case when person_index = 1 then organization else null end) as organization\n \n \n \n \n \n , max(case when person_index = 1 then region else null end) as region\n \n \n \n , max(case when person_index = 1 then timezone else null end) as timezone\n \n \n \n , max(case when person_index = 1 then title else null end) as title\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then total_sum_revenue_refunded_order else null end) as total_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_refunded_order else null end) as organic_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_placed_order else null end) as total_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_placed_order else null end) as organic_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_ordered_product else null end) as total_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_ordered_product else null end) as organic_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_checkout_started else null end) as total_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_checkout_started else null end) as organic_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_cancelled_order else null end) as total_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_cancelled_order else null end) as organic_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_active_on_site else null end) as total_count_active_on_site\n \n \n \n , max(case when person_index = 1 then total_count_viewed_product else null end) as total_count_viewed_product\n \n \n \n , max(case when person_index = 1 then total_count_ordered_product else null end) as total_count_ordered_product\n \n \n \n , max(case when person_index = 1 then total_count_placed_order else null end) as total_count_placed_order\n \n \n \n , max(case when person_index = 1 then total_count_refunded_order else null end) as total_count_refunded_order\n \n \n \n , max(case when person_index = 1 then total_count_cancelled_order else null end) as total_count_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_fulfilled_order else null end) as total_count_fulfilled_order\n \n \n \n , max(case when person_index = 1 then total_count_received_email else null end) as total_count_received_email\n \n \n \n , max(case when person_index = 1 then total_count_clicked_email else null end) as total_count_clicked_email\n \n \n \n , max(case when person_index = 1 then total_count_opened_email else null end) as total_count_opened_email\n \n \n \n , max(case when person_index = 1 then total_count_bounced_email else null end) as total_count_bounced_email\n \n \n \n , max(case when person_index = 1 then total_count_marked_email_as_spam else null end) as total_count_marked_email_as_spam\n \n \n \n , max(case when person_index = 1 then total_count_dropped_email else null end) as total_count_dropped_email\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_list else null end) as total_count_subscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_to_list else null end) as total_count_unsubscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed else null end) as total_count_unsubscribed\n \n \n \n , max(case when person_index = 1 then total_count_updated_email_preferences else null end) as total_count_updated_email_preferences\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_back_in_stock else null end) as total_count_subscribed_to_back_in_stock\n \n \n \n , max(case when person_index = 1 then total_count_merged_profile else null end) as total_count_merged_profile\n \n \n \n , max(case when person_index = 1 then total_count_received_sms else null end) as total_count_received_sms\n \n \n \n , max(case when person_index = 1 then total_count_clicked_sms else null end) as total_count_clicked_sms\n \n \n \n , max(case when person_index = 1 then total_count_consented_to_receive_sms else null end) as total_count_consented_to_receive_sms\n \n \n \n , max(case when person_index = 1 then total_count_sent_sms else null end) as total_count_sent_sms\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_from_sms else null end) as total_count_unsubscribed_from_sms\n \n \n \n , max(case when person_index = 1 then total_count_failed_to_deliver_sms else null end) as total_count_failed_to_deliver_sms\n \n \n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"int__klaviyo_person_rollup\""}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__customer')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__customer"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__customer"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be"}, "created_at": 1666978250.489658, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__customer\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__customer"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line_refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3"}, "created_at": 1666978250.4994612, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_refund_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line_refund\"\n group by order_line_refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line_refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec"}, "created_at": 1666978250.503477, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e"}, "created_at": 1666978250.507039, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d"}, "created_at": 1666978250.510592, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variant_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product_variant')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product_variant"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation", "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product_variant"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e"}, "created_at": 1666978250.514442, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variant_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__product_variant\"\n group by variant_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product_variant"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__transaction')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92"}, "created_at": 1666978250.518018, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__transaction\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__transaction"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659"}, "created_at": 1666978250.5213451, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n refund_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__refund\"\n group by refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_adjustment_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_adjustment')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation", "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_adjustment"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207"}, "created_at": 1666978250.525098, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_adjustment_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_adjustment\"\n group by order_adjustment_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_adjustment"}, "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__campaign_campaign_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__campaign_campaign_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__campaign_campaign_id", "alias": "not_null_stg_klaviyo__campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__campaign_campaign_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.597206, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_id", "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation", "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26"}, "created_at": 1666978250.598593, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__campaign\"\n group by campaign_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__event_event_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__event_event_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__event_event_id", "alias": "not_null_stg_klaviyo__event_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__event_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.60223, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa"}, "created_at": 1666978250.6035252, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__event\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__flow_flow_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__flow_flow_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__flow_flow_id", "alias": "not_null_stg_klaviyo__flow_flow_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__flow_flow_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.607263, "compiled_code": "\n \n \n\n\n\nselect flow_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\nwhere flow_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_id", "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation", "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270"}, "created_at": 1666978250.6085272, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__flow\"\n group by flow_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "integration_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__integration_integration_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__integration_integration_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__integration_integration_id", "alias": "not_null_stg_klaviyo__integration_integration_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__integration_integration_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.612082, "compiled_code": "\n \n \n\n\n\nselect integration_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\nwhere integration_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "integration_id", "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["integration_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation", "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596"}, "created_at": 1666978250.6133718, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n integration_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__integration\"\n group by integration_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_person_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_person_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_person_id", "alias": "not_null_stg_klaviyo__person_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6169689, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "unique_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "unique_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "unique_stg_klaviyo__person_email", "alias": "unique_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/unique_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1666978250.6186209, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_email", "alias": "not_null_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.619875, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161"}, "created_at": 1666978250.6211982, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__person\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "metric_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__metric_metric_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__metric_metric_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__metric_metric_id", "alias": "not_null_stg_klaviyo__metric_metric_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__metric_metric_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.624727, "compiled_code": "\n \n \n\n\n\nselect metric_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\nwhere metric_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "metric_id", "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["metric_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation", "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58"}, "created_at": 1666978250.625969, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n metric_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_klaviyo\".\"stg_klaviyo__metric\"\n group by metric_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__events_event_id"], "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__events_event_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__events_event_id", "alias": "not_null_klaviyo__events_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__events_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.672668, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.klaviyo__events"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98"}, "created_at": 1666978250.673972, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__events\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__events"}, "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__person_campaign_flow_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__person_campaign_flow_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__person_campaign_flow_person_id", "alias": "not_null_klaviyo__person_campaign_flow_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__person_campaign_flow_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.677459, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "last_touch_campaign_id", "last_touch_flow_id", "variation_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation", "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd"}, "created_at": 1666978250.678729, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__person_campaign_flow\"\n group by person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__campaigns_campaign_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__campaigns_campaign_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__campaigns_campaign_variation_key", "alias": "not_null_klaviyo__campaigns_campaign_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__campaigns_campaign_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6828039, "compiled_code": "\n \n \n\n\n\nselect campaign_variation_key\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\"\nwhere campaign_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_variation_key", "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64"}, "created_at": 1666978250.684433, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_variation_key, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__campaigns\"\n group by campaign_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__flows_flow_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__flows_flow_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__flows_flow_variation_key", "alias": "not_null_klaviyo__flows_flow_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__flows_flow_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.6878269, "compiled_code": "\n \n \n\n\n\nselect flow_variation_key\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\"\nwhere flow_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_variation_key", "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e"}, "created_at": 1666978250.689277, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_variation_key, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__flows\"\n group by flow_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_person_id", "alias": "not_null_klaviyo__persons_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.692893, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "unique_klaviyo__persons_email"], "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "unique_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "unique_klaviyo__persons_email", "alias": "unique_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/unique_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1666978250.694391, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_email"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_email", "alias": "not_null_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.695638, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329"}, "created_at": 1666978250.696954, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_klaviyo\".\"klaviyo__persons\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__event_attribution_event_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__event_attribution_event_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__event_attribution_event_id", "alias": "not_null_int_klaviyo__event_attribution_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__event_attribution_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.709464, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10"}, "created_at": 1666978250.711071, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__event_attribution\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variation_id", "source_relation", "last_touch_campaign_id", "last_touch_flow_id"], "model": "{{ get_where_subquery(ref('int_klaviyo__campaign_flow_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id", "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61"}, "created_at": 1666978250.714446, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n group by variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__campaign_flow_metrics"}, "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__person_metrics_person_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__person_metrics_person_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__person_metrics_person_id", "alias": "not_null_int_klaviyo__person_metrics_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__person_metrics_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.718294, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.int_klaviyo__person_metrics"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c"}, "created_at": 1666978250.7199628, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_int_klaviyo\".\"int_klaviyo__person_metrics\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__person_metrics"}, "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "unique_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "unique_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "unique_shopify__customer_cohorts_customer_cohort_id", "alias": "unique_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/unique_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.799266, "compiled_code": "\n \n \n\nselect\n customer_cohort_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is not null\ngroup by customer_cohort_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "not_null_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "not_null_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "not_null_shopify__customer_cohorts_customer_cohort_id", "alias": "not_null_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/not_null_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1666978250.800738, "compiled_code": "\n \n \n\n\n\nselect customer_cohort_id\nfrom \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce"}, "created_at": 1666978250.802013, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__orders\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696"}, "created_at": 1666978250.805644, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__customers\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__products')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__products"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__products"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa"}, "created_at": 1666978250.809152, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__products\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__products"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__order_lines')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40"}, "created_at": 1666978250.812595, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__order_lines\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__order_lines"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__transactions')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb"}, "created_at": 1666978250.816239, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__transactions"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers__order_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3"}, "created_at": 1666978250.8206341, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n customer_id, source_relation\n from __dbt__cte__shopify__customers__order_aggregates\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers__order_aggregates"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders__order_line_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders__order_line_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders__order_line_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04"}, "created_at": 1666978250.824349, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n order_id, source_relation\n from __dbt__cte__shopify__orders__order_line_aggregates\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"linkedin_pages_integration_tests_1_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders__order_line_aggregates"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["email", "klaviyo_source_relation", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__customer_enhanced')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__customer_enhanced"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc"}, "created_at": 1666978250.86548, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n email, klaviyo_source_relation, shopify_source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\"\n group by email, klaviyo_source_relation, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__customer_enhanced"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "email", "klaviyo_source_relation", "shopify_source_relation", "campaign_id", "flow_id", "variation_id"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__daily_customer_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id", "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__daily_customer_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f"}, "created_at": 1666978250.869279, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\"\n group by date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__daily_customer_metrics"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__orders_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "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"}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a"}, "created_at": 1666978250.873759, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, shopify_source_relation\n from \"postgres\".\"linkedin_pages_integration_tests_1_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n group by order_id, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__orders_attribution"}}, "sources": {"source.shopify_source.shopify.order": {"fqn": ["shopify_source", "shopify", "order"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": true, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "buyer_accepts_marketing": {"name": "buyer_accepts_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_at": {"name": "cancelled_at", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_at": {"name": "closed_at", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxes_included": {"name": "taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order\"", "created_at": 1666978250.894924}, "source.shopify_source.shopify.customer": {"fqn": ["shopify_source", "shopify", "customer"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.customer", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "customer", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "customer", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "accepts_marketing": {"name": "accepts_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "state": {"name": "state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_exempt": {"name": "tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "verified_email": {"name": "verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"customer\"", "created_at": 1666978250.895052}, "source.shopify_source.shopify.order_line": {"fqn": ["shopify_source", "shopify", "order_line"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item for an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gift_card": {"name": "gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line\"", "created_at": 1666978250.895159}, "source.shopify_source.shopify.order_line_refund": {"fqn": ["shopify_source", "shopify", "order_line_refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line_refund", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line_refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line_refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item refund in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line_refund\"", "created_at": 1666978250.8952498}, "source.shopify_source.shopify.product": {"fqn": ["shopify_source", "shopify", "product"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_at": {"name": "published_at", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product\"", "created_at": 1666978250.895343}, "source.shopify_source.shopify.product_variant": {"fqn": ["shopify_source", "shopify", "product_variant"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product_variant", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product_variant", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product_variant", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product_variant\"", "created_at": 1666978250.8954592}, "source.shopify_source.shopify.transaction": {"fqn": ["shopify_source", "shopify", "transaction"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.transaction", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "transaction", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "transaction", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"transaction\"", "created_at": 1666978250.8955772}, "source.shopify_source.shopify.refund": {"fqn": ["shopify_source", "shopify", "refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.refund", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a refund within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"refund\"", "created_at": 1666978250.895663}, "source.shopify_source.shopify.order_adjustment": {"fqn": ["shopify_source", "shopify", "order_adjustment"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_adjustment", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_adjustment", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_adjustment", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_adjustment\"", "created_at": 1666978250.896023}, "source.klaviyo_source.klaviyo.campaign": {"fqn": ["klaviyo_source", "klaviyo", "campaign"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.campaign", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "campaign", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "campaign", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table capturing email campaigns in Klaviyo. \n", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "send_time": {"name": "send_time", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_label": {"name": "status_label", "description": "The label of the status as it appears in the UI (should be the same as `status`).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"campaign\"", "created_at": 1666978250.896149}, "source.klaviyo_source.klaviyo.event": {"fqn": ["klaviyo_source", "klaviyo", "event"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.event", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "event", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "event", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"_variation": {"name": "_variation", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "datetime": {"name": "datetime", "description": "Timestamp of when the event was recorded in Klaviyo. Should be the same/nominally off from `timestamp`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timestamp": {"name": "timestamp", "description": "Timestamp of when the event was triggered. Should be the same/nominally off from `datetime`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "property_value": {"name": "property_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"event\"", "created_at": 1666978250.896244}, "source.klaviyo_source.klaviyo.flow": {"fqn": ["klaviyo_source", "klaviyo", "flow"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.flow", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "flow", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "flow", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "trigger": {"name": "trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_filter": {"name": "customer_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"flow\"", "created_at": 1666978250.896333}, "source.klaviyo_source.klaviyo.integration": {"fqn": ["klaviyo_source", "klaviyo", "integration"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.integration", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "integration", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "integration", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"integration\"", "created_at": 1666978250.896429}, "source.klaviyo_source.klaviyo.person": {"fqn": ["klaviyo_source", "klaviyo", "person"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.person", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "person", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "person", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"id": {"name": "id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "Person's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "Person's surname.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"person\"", "created_at": 1666978250.8965278}, "source.klaviyo_source.klaviyo.metric": {"fqn": ["klaviyo_source", "klaviyo", "metric"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.metric", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "metric", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "metric", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"metric\"", "created_at": 1666978250.8966122}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.80124, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801569, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801728, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.801877, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.802023, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"unique_id": "macro.dbt_postgres.postgres__get_catalog", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8035789, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"unique_id": "macro.dbt_postgres.postgres_get_relations", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.804519, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"unique_id": "macro.dbt_postgres.postgres__create_table_as", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.81249, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.813251, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"unique_id": "macro.dbt_postgres.postgres__create_schema", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.813741, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"unique_id": "macro.dbt_postgres.postgres__drop_schema", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.814206, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.814974, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8154922, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"unique_id": "macro.dbt_postgres.postgres__information_schema_name", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.815756, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"unique_id": "macro.dbt_postgres.postgres__list_schemas", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.816268, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.817156, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8186848, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8190022, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.819463, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.819853, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"unique_id": "macro.dbt_postgres.postgres_escape_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.820517, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.820838, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.821728, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.822033, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"unique_id": "macro.dbt_postgres.postgres__copy_grants", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.822207, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.823073, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.82433, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"unique_id": "macro.dbt_postgres.postgres__dateadd", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8248682, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"unique_id": "macro.dbt_postgres.postgres__listagg", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.825839, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"unique_id": "macro.dbt_postgres.postgres__datediff", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8306859, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"unique_id": "macro.dbt_postgres.postgres__any_value", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.831041, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"unique_id": "macro.dbt_postgres.postgres__last_day", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.831846, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"unique_id": "macro.dbt_postgres.postgres__split_part", "package_name": "dbt_postgres", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.832552, "supported_languages": null}, "macro.dbt.run_hooks": {"unique_id": "macro.dbt.run_hooks", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834265, "supported_languages": null}, "macro.dbt.make_hook_config": {"unique_id": "macro.dbt.make_hook_config", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834542, "supported_languages": null}, "macro.dbt.before_begin": {"unique_id": "macro.dbt.before_begin", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.83474, "supported_languages": null}, "macro.dbt.in_transaction": {"unique_id": "macro.dbt.in_transaction", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.834934, "supported_languages": null}, "macro.dbt.after_commit": {"unique_id": "macro.dbt.after_commit", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.835125, "supported_languages": null}, "macro.dbt.set_sql_header": {"unique_id": "macro.dbt.set_sql_header", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8357172, "supported_languages": null}, "macro.dbt.should_full_refresh": {"unique_id": "macro.dbt.should_full_refresh", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8361359, "supported_languages": null}, "macro.dbt.should_store_failures": {"unique_id": "macro.dbt.should_store_failures", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.836564, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"unique_id": "macro.dbt.snapshot_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8372312, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"unique_id": "macro.dbt.default__snapshot_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.837743, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"unique_id": "macro.dbt.strategy_dispatch", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.842988, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"unique_id": "macro.dbt.snapshot_hash_arguments", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.84331, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"unique_id": "macro.dbt.default__snapshot_hash_arguments", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.843683, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"unique_id": "macro.dbt.snapshot_timestamp_strategy", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.844765, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"unique_id": "macro.dbt.snapshot_string_as_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978248.845, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"unique_id": "macro.dbt.default__snapshot_string_as_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.845245, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.84733, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"unique_id": "macro.dbt.snapshot_check_strategy", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8492758, "supported_languages": null}, "macro.dbt.create_columns": {"unique_id": "macro.dbt.create_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.854902, "supported_languages": null}, "macro.dbt.default__create_columns": {"unique_id": "macro.dbt.default__create_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.855333, "supported_languages": null}, "macro.dbt.post_snapshot": {"unique_id": "macro.dbt.post_snapshot", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.855576, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"unique_id": "macro.dbt.default__post_snapshot", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.85571, "supported_languages": null}, "macro.dbt.get_true_sql": {"unique_id": "macro.dbt.get_true_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.85592, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"unique_id": "macro.dbt.default__get_true_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.856103, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"unique_id": "macro.dbt.snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.856423, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"unique_id": "macro.dbt.default__snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.857951, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"unique_id": "macro.dbt.build_snapshot_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8582342, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"unique_id": "macro.dbt.default__build_snapshot_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.858579, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"unique_id": "macro.dbt.build_snapshot_staging_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.85919, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"unique_id": "macro.dbt.materialization_snapshot_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.868392, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"unique_id": "macro.dbt.materialization_test_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1666978248.871536, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"unique_id": "macro.dbt.get_test_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.872302, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"unique_id": "macro.dbt.default__get_test_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.872829, "supported_languages": null}, "macro.dbt.get_where_subquery": {"unique_id": "macro.dbt.get_where_subquery", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.873632, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"unique_id": "macro.dbt.default__get_where_subquery", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.874188, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"unique_id": "macro.dbt.get_quoted_csv", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.876409, "supported_languages": null}, "macro.dbt.diff_columns": {"unique_id": "macro.dbt.diff_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8771992, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"unique_id": "macro.dbt.diff_column_data_types", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.878148, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"unique_id": "macro.dbt.get_merge_update_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.878477, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"unique_id": "macro.dbt.default__get_merge_update_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.87967, "supported_languages": null}, "macro.dbt.get_merge_sql": {"unique_id": "macro.dbt.get_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, predicates=none) -%}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, predicates) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.886053, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"unique_id": "macro.dbt.default__get_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, predicates) -%}\n {%- set predicates = [] if predicates is none else [] + 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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.888522, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"unique_id": "macro.dbt.get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978248.8889291, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\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 );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n );\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.890111, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.890513, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8914409, "supported_languages": null}, "macro.dbt.is_incremental": {"unique_id": "macro.dbt.is_incremental", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.892533, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"unique_id": "macro.dbt.get_incremental_append_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8937972, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"unique_id": "macro.dbt.default__get_incremental_append_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.894134, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8943942, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.894818, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"unique_id": "macro.dbt.get_incremental_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8950882, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"unique_id": "macro.dbt.default__get_incremental_merge_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.895453, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8957329, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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[\"predicates\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.896109, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"unique_id": "macro.dbt.get_incremental_default_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.8963861, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"unique_id": "macro.dbt.default__get_incremental_default_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8966331, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"unique_id": "macro.dbt.get_insert_into_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.8971221, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"unique_id": "macro.dbt.materialization_incremental_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "name": "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('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, '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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.904452, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"unique_id": "macro.dbt.incremental_validate_on_schema_change", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9119518, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"unique_id": "macro.dbt.check_for_schema_changes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.913791, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"unique_id": "macro.dbt.sync_column_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.915554, "supported_languages": null}, "macro.dbt.process_schema_changes": {"unique_id": "macro.dbt.process_schema_changes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9167738, "supported_languages": null}, "macro.dbt.materialization_table_default": {"unique_id": "macro.dbt.materialization_table_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.920505, "supported_languages": ["sql"]}, "macro.dbt.get_create_table_as_sql": {"unique_id": "macro.dbt.get_create_table_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.921391, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"unique_id": "macro.dbt.default__get_create_table_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.921748, "supported_languages": null}, "macro.dbt.create_table_as": {"unique_id": "macro.dbt.create_table_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.922404, "supported_languages": null}, "macro.dbt.default__create_table_as": {"unique_id": "macro.dbt.default__create_table_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.923023, "supported_languages": null}, "macro.dbt.materialization_view_default": {"unique_id": "macro.dbt.materialization_view_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/view.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1666978248.9268868, "supported_languages": ["sql"]}, "macro.dbt.handle_existing_table": {"unique_id": "macro.dbt.handle_existing_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9275799, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"unique_id": "macro.dbt.default__handle_existing_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.927934, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"unique_id": "macro.dbt.create_or_replace_view", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.930275, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"unique_id": "macro.dbt.get_create_view_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.930915, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"unique_id": "macro.dbt.default__get_create_view_as_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9311612, "supported_languages": null}, "macro.dbt.create_view_as": {"unique_id": "macro.dbt.create_view_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9314308, "supported_languages": null}, "macro.dbt.default__create_view_as": {"unique_id": "macro.dbt.default__create_view_as", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.93182, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"unique_id": "macro.dbt.materialization_seed_default", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9365, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"unique_id": "macro.dbt.create_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9431622, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"unique_id": "macro.dbt.default__create_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9445162, "supported_languages": null}, "macro.dbt.reset_csv_table": {"unique_id": "macro.dbt.reset_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.944869, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"unique_id": "macro.dbt.default__reset_csv_table", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9455302, "supported_languages": null}, "macro.dbt.get_csv_sql": {"unique_id": "macro.dbt.get_csv_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.945793, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"unique_id": "macro.dbt.default__get_csv_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.945972, "supported_languages": null}, "macro.dbt.get_binding_char": {"unique_id": "macro.dbt.get_binding_char", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.94616, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"unique_id": "macro.dbt.default__get_binding_char", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946314, "supported_languages": null}, "macro.dbt.get_batch_size": {"unique_id": "macro.dbt.get_batch_size", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946531, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"unique_id": "macro.dbt.default__get_batch_size", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.946686, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"unique_id": "macro.dbt.get_seed_column_quoted_csv", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.947422, "supported_languages": null}, "macro.dbt.load_csv_rows": {"unique_id": "macro.dbt.load_csv_rows", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.947812, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"unique_id": "macro.dbt.default__load_csv_rows", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.95001, "supported_languages": null}, "macro.dbt.generate_alias_name": {"unique_id": "macro.dbt.generate_alias_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9508312, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"unique_id": "macro.dbt.default__generate_alias_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9511628, "supported_languages": null}, "macro.dbt.generate_schema_name": {"unique_id": "macro.dbt.generate_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.951954, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"unique_id": "macro.dbt.default__generate_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.952321, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"unique_id": "macro.dbt.generate_schema_name_for_env", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.952765, "supported_languages": null}, "macro.dbt.generate_database_name": {"unique_id": "macro.dbt.generate_database_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.953413, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"unique_id": "macro.dbt.default__generate_database_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.953774, "supported_languages": null}, "macro.dbt.default__test_relationships": {"unique_id": "macro.dbt.default__test_relationships", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.954325, "supported_languages": null}, "macro.dbt.default__test_not_null": {"unique_id": "macro.dbt.default__test_not_null", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.954839, "supported_languages": null}, "macro.dbt.default__test_unique": {"unique_id": "macro.dbt.default__test_unique", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.955266, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"unique_id": "macro.dbt.default__test_accepted_values", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.956192, "supported_languages": null}, "macro.dbt.statement": {"unique_id": "macro.dbt.statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.958616, "supported_languages": null}, "macro.dbt.noop_statement": {"unique_id": "macro.dbt.noop_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9596128, "supported_languages": null}, "macro.dbt.run_query": {"unique_id": "macro.dbt.run_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.960045, "supported_languages": null}, "macro.dbt.convert_datetime": {"unique_id": "macro.dbt.convert_datetime", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.962732, "supported_languages": null}, "macro.dbt.dates_in_range": {"unique_id": "macro.dbt.dates_in_range", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.96457, "supported_languages": null}, "macro.dbt.partition_range": {"unique_id": "macro.dbt.partition_range", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.965728, "supported_languages": null}, "macro.dbt.py_current_timestring": {"unique_id": "macro.dbt.py_current_timestring", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966099, "supported_languages": null}, "macro.dbt.except": {"unique_id": "macro.dbt.except", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966675, "supported_languages": null}, "macro.dbt.default__except": {"unique_id": "macro.dbt.default__except", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.966785, "supported_languages": null}, "macro.dbt.replace": {"unique_id": "macro.dbt.replace", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.96734, "supported_languages": null}, "macro.dbt.default__replace": {"unique_id": "macro.dbt.default__replace", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.967576, "supported_languages": null}, "macro.dbt.concat": {"unique_id": "macro.dbt.concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968002, "supported_languages": null}, "macro.dbt.default__concat": {"unique_id": "macro.dbt.default__concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9681761, "supported_languages": null}, "macro.dbt.length": {"unique_id": "macro.dbt.length", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968652, "supported_languages": null}, "macro.dbt.default__length": {"unique_id": "macro.dbt.default__length", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.968813, "supported_languages": null}, "macro.dbt.dateadd": {"unique_id": "macro.dbt.dateadd", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.969453, "supported_languages": null}, "macro.dbt.default__dateadd": {"unique_id": "macro.dbt.default__dateadd", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.969725, "supported_languages": null}, "macro.dbt.intersect": {"unique_id": "macro.dbt.intersect", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9702559, "supported_languages": null}, "macro.dbt.default__intersect": {"unique_id": "macro.dbt.default__intersect", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.970369, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"unique_id": "macro.dbt.escape_single_quotes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97086, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"unique_id": "macro.dbt.default__escape_single_quotes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9710588, "supported_languages": null}, "macro.dbt.right": {"unique_id": "macro.dbt.right", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.971592, "supported_languages": null}, "macro.dbt.default__right": {"unique_id": "macro.dbt.default__right", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.971903, "supported_languages": null}, "macro.dbt.listagg": {"unique_id": "macro.dbt.listagg", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.972886, "supported_languages": null}, "macro.dbt.default__listagg": {"unique_id": "macro.dbt.default__listagg", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.973463, "supported_languages": null}, "macro.dbt.datediff": {"unique_id": "macro.dbt.datediff", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.974019, "supported_languages": null}, "macro.dbt.default__datediff": {"unique_id": "macro.dbt.default__datediff", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.974241, "supported_languages": null}, "macro.dbt.safe_cast": {"unique_id": "macro.dbt.safe_cast", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97474, "supported_languages": null}, "macro.dbt.default__safe_cast": {"unique_id": "macro.dbt.default__safe_cast", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9749372, "supported_languages": null}, "macro.dbt.hash": {"unique_id": "macro.dbt.hash", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9753861, "supported_languages": null}, "macro.dbt.default__hash": {"unique_id": "macro.dbt.default__hash", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.975612, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"unique_id": "macro.dbt.cast_bool_to_text", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976039, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"unique_id": "macro.dbt.default__cast_bool_to_text", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9762728, "supported_languages": null}, "macro.dbt.any_value": {"unique_id": "macro.dbt.any_value", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976759, "supported_languages": null}, "macro.dbt.default__any_value": {"unique_id": "macro.dbt.default__any_value", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.976937, "supported_languages": null}, "macro.dbt.position": {"unique_id": "macro.dbt.position", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.977437, "supported_languages": null}, "macro.dbt.default__position": {"unique_id": "macro.dbt.default__position", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.977628, "supported_languages": null}, "macro.dbt.string_literal": {"unique_id": "macro.dbt.string_literal", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.978165, "supported_languages": null}, "macro.dbt.default__string_literal": {"unique_id": "macro.dbt.default__string_literal", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.978328, "supported_languages": null}, "macro.dbt.type_string": {"unique_id": "macro.dbt.type_string", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.97969, "supported_languages": null}, "macro.dbt.default__type_string": {"unique_id": "macro.dbt.default__type_string", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9799209, "supported_languages": null}, "macro.dbt.type_timestamp": {"unique_id": "macro.dbt.type_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980254, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"unique_id": "macro.dbt.default__type_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980478, "supported_languages": null}, "macro.dbt.type_float": {"unique_id": "macro.dbt.type_float", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98072, "supported_languages": null}, "macro.dbt.default__type_float": {"unique_id": "macro.dbt.default__type_float", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.980936, "supported_languages": null}, "macro.dbt.type_numeric": {"unique_id": "macro.dbt.type_numeric", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9811652, "supported_languages": null}, "macro.dbt.default__type_numeric": {"unique_id": "macro.dbt.default__type_numeric", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9814348, "supported_languages": null}, "macro.dbt.type_bigint": {"unique_id": "macro.dbt.type_bigint", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.981676, "supported_languages": null}, "macro.dbt.default__type_bigint": {"unique_id": "macro.dbt.default__type_bigint", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98192, "supported_languages": null}, "macro.dbt.type_int": {"unique_id": "macro.dbt.type_int", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982176, "supported_languages": null}, "macro.dbt.default__type_int": {"unique_id": "macro.dbt.default__type_int", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982392, "supported_languages": null}, "macro.dbt.type_boolean": {"unique_id": "macro.dbt.type_boolean", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.982621, "supported_languages": null}, "macro.dbt.default__type_boolean": {"unique_id": "macro.dbt.default__type_boolean", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9828322, "supported_languages": null}, "macro.dbt.array_concat": {"unique_id": "macro.dbt.array_concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.983426, "supported_languages": null}, "macro.dbt.default__array_concat": {"unique_id": "macro.dbt.default__array_concat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.983615, "supported_languages": null}, "macro.dbt.bool_or": {"unique_id": "macro.dbt.bool_or", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984046, "supported_languages": null}, "macro.dbt.default__bool_or": {"unique_id": "macro.dbt.default__bool_or", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984189, "supported_languages": null}, "macro.dbt.last_day": {"unique_id": "macro.dbt.last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.984763, "supported_languages": null}, "macro.dbt.default_last_day": {"unique_id": "macro.dbt.default_last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9851599, "supported_languages": null}, "macro.dbt.default__last_day": {"unique_id": "macro.dbt.default__last_day", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98542, "supported_languages": null}, "macro.dbt.split_part": {"unique_id": "macro.dbt.split_part", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9862778, "supported_languages": null}, "macro.dbt.default__split_part": {"unique_id": "macro.dbt.default__split_part", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.986536, "supported_languages": null}, "macro.dbt._split_part_negative": {"unique_id": "macro.dbt._split_part_negative", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.986955, "supported_languages": null}, "macro.dbt.date_trunc": {"unique_id": "macro.dbt.date_trunc", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.987481, "supported_languages": null}, "macro.dbt.default__date_trunc": {"unique_id": "macro.dbt.default__date_trunc", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.98766, "supported_languages": null}, "macro.dbt.array_construct": {"unique_id": "macro.dbt.array_construct", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.988287, "supported_languages": null}, "macro.dbt.default__array_construct": {"unique_id": "macro.dbt.default__array_construct", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9886389, "supported_languages": null}, "macro.dbt.array_append": {"unique_id": "macro.dbt.array_append", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.989132, "supported_languages": null}, "macro.dbt.default__array_append": {"unique_id": "macro.dbt.default__array_append", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9893272, "supported_languages": null}, "macro.dbt.create_schema": {"unique_id": "macro.dbt.create_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9899478, "supported_languages": null}, "macro.dbt.default__create_schema": {"unique_id": "macro.dbt.default__create_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990227, "supported_languages": null}, "macro.dbt.drop_schema": {"unique_id": "macro.dbt.drop_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990458, "supported_languages": null}, "macro.dbt.default__drop_schema": {"unique_id": "macro.dbt.default__drop_schema", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.990731, "supported_languages": null}, "macro.dbt.current_timestamp": {"unique_id": "macro.dbt.current_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991463, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"unique_id": "macro.dbt.default__current_timestamp", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991683, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"unique_id": "macro.dbt.snapshot_get_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.991883, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"unique_id": "macro.dbt.default__snapshot_get_time", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992032, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"unique_id": "macro.dbt.current_timestamp_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992259, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.992363, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.992587, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.992836, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"unique_id": "macro.dbt.get_create_index_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.9936059, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"unique_id": "macro.dbt.default__get_create_index_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9938922, "supported_languages": null}, "macro.dbt.create_indexes": {"unique_id": "macro.dbt.create_indexes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.9941351, "supported_languages": null}, "macro.dbt.default__create_indexes": {"unique_id": "macro.dbt.default__create_indexes", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978248.994743, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"unique_id": "macro.dbt.make_intermediate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999233, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"unique_id": "macro.dbt.default__make_intermediate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999491, "supported_languages": null}, "macro.dbt.make_temp_relation": {"unique_id": "macro.dbt.make_temp_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978248.999813, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"unique_id": "macro.dbt.default__make_temp_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.000245, "supported_languages": null}, "macro.dbt.make_backup_relation": {"unique_id": "macro.dbt.make_backup_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.000596, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"unique_id": "macro.dbt.default__make_backup_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.001083, "supported_languages": null}, "macro.dbt.drop_relation": {"unique_id": "macro.dbt.drop_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0014179, "supported_languages": null}, "macro.dbt.default__drop_relation": {"unique_id": "macro.dbt.default__drop_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0017269, "supported_languages": null}, "macro.dbt.truncate_relation": {"unique_id": "macro.dbt.truncate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0019898, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"unique_id": "macro.dbt.default__truncate_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.002261, "supported_languages": null}, "macro.dbt.rename_relation": {"unique_id": "macro.dbt.rename_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.002563, "supported_languages": null}, "macro.dbt.default__rename_relation": {"unique_id": "macro.dbt.default__rename_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0029519, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"unique_id": "macro.dbt.get_or_create_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.003314, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"unique_id": "macro.dbt.default__get_or_create_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0040991, "supported_languages": null}, "macro.dbt.load_cached_relation": {"unique_id": "macro.dbt.load_cached_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.004524, "supported_languages": null}, "macro.dbt.load_relation": {"unique_id": "macro.dbt.load_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.004745, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"unique_id": "macro.dbt.drop_relation_if_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.005018, "supported_languages": null}, "macro.dbt.collect_freshness": {"unique_id": "macro.dbt.collect_freshness", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.005773, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"unique_id": "macro.dbt.default__collect_freshness", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.00639, "supported_languages": null}, "macro.dbt.copy_grants": {"unique_id": "macro.dbt.copy_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.008689, "supported_languages": null}, "macro.dbt.default__copy_grants": {"unique_id": "macro.dbt.default__copy_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.008847, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.009075, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.009235, "supported_languages": null}, "macro.dbt.should_revoke": {"unique_id": "macro.dbt.should_revoke", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.009742, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"unique_id": "macro.dbt.get_show_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.0101042, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"unique_id": "macro.dbt.default__get_show_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.010348, "supported_languages": null}, "macro.dbt.get_grant_sql": {"unique_id": "macro.dbt.get_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0107079, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"unique_id": "macro.dbt.default__get_grant_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.010998, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"unique_id": "macro.dbt.get_revoke_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011328, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"unique_id": "macro.dbt.default__get_revoke_sql", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011598, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"unique_id": "macro.dbt.get_dcl_statement_list", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.011922, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"unique_id": "macro.dbt.default__get_dcl_statement_list", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.012907, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"unique_id": "macro.dbt.call_dcl_statements", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013269, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"unique_id": "macro.dbt.default__call_dcl_statements", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013636, "supported_languages": null}, "macro.dbt.apply_grants": {"unique_id": "macro.dbt.apply_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.013963, "supported_languages": null}, "macro.dbt.default__apply_grants": {"unique_id": "macro.dbt.default__apply_grants", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.015867, "supported_languages": null}, "macro.dbt.alter_column_comment": {"unique_id": "macro.dbt.alter_column_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017081, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"unique_id": "macro.dbt.default__alter_column_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017438, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"unique_id": "macro.dbt.alter_relation_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0177448, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"unique_id": "macro.dbt.default__alter_relation_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.017995, "supported_languages": null}, "macro.dbt.persist_docs": {"unique_id": "macro.dbt.persist_docs", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0184069, "supported_languages": null}, "macro.dbt.default__persist_docs": {"unique_id": "macro.dbt.default__persist_docs", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.019199, "supported_languages": null}, "macro.dbt.get_catalog": {"unique_id": "macro.dbt.get_catalog", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02127, "supported_languages": null}, "macro.dbt.default__get_catalog": {"unique_id": "macro.dbt.default__get_catalog", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0216682, "supported_languages": null}, "macro.dbt.information_schema_name": {"unique_id": "macro.dbt.information_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.021941, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"unique_id": "macro.dbt.default__information_schema_name", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.022161, "supported_languages": null}, "macro.dbt.list_schemas": {"unique_id": "macro.dbt.list_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02242, "supported_languages": null}, "macro.dbt.default__list_schemas": {"unique_id": "macro.dbt.default__list_schemas", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.022874, "supported_languages": null}, "macro.dbt.check_schema_exists": {"unique_id": "macro.dbt.check_schema_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.023202, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"unique_id": "macro.dbt.default__check_schema_exists", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.023638, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"unique_id": "macro.dbt.list_relations_without_caching", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.0238981, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"unique_id": "macro.dbt.default__list_relations_without_caching", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.024121, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"unique_id": "macro.dbt.get_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.026696, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"unique_id": "macro.dbt.default__get_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027053, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"unique_id": "macro.dbt.sql_convert_columns_in_relation", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027509, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"unique_id": "macro.dbt.get_columns_in_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.027772, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"unique_id": "macro.dbt.default__get_columns_in_query", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.02833, "supported_languages": null}, "macro.dbt.alter_column_type": {"unique_id": "macro.dbt.alter_column_type", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.028667, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"unique_id": "macro.dbt.default__alter_column_type", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.029532, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"unique_id": "macro.dbt.alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.029928, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.031126, "supported_languages": null}, "macro.dbt.build_ref_function": {"unique_id": "macro.dbt.build_ref_function", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.033428, "supported_languages": null}, "macro.dbt.build_source_function": {"unique_id": "macro.dbt.build_source_function", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0341618, "supported_languages": null}, "macro.dbt.build_config_dict": {"unique_id": "macro.dbt.build_config_dict", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {%- for key in model.config.config_keys_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[key] -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0348842, "supported_languages": null}, "macro.dbt.py_script_postfix": {"unique_id": "macro.dbt.py_script_postfix", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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 def __repr__(self):\n return '{{ this }}'\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.035468, "supported_languages": null}, "macro.dbt.py_script_comment": {"unique_id": "macro.dbt.py_script_comment", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.035567, "supported_languages": null}, "macro.dbt.test_unique": {"unique_id": "macro.dbt.test_unique", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.036387, "supported_languages": null}, "macro.dbt.test_not_null": {"unique_id": "macro.dbt.test_not_null", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.036704, "supported_languages": null}, "macro.dbt.test_accepted_values": {"unique_id": "macro.dbt.test_accepted_values", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.037111, "supported_languages": null}, "macro.dbt.test_relationships": {"unique_id": "macro.dbt.test_relationships", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.037486, "supported_languages": null}, "macro.shopify_source.get_order_columns": {"unique_id": "macro.shopify_source.get_order_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_columns", "macro_sql": "{% macro get_order_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_id\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_discounts\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_line_items_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_float()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"subtotal_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"taxes_included\", \"datatype\": \"boolean\", \"alias\": \"has_taxes_included\"},\n {\"name\": \"total_weight\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"landing_site_base_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cancel_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"cancelled_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"cancelled_timestamp\"},\n {\"name\": \"cart_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"checkout_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"closed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"closed_timestamp\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"financial_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"processing_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"referring_site\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"browser_ip\", \"datatype\": dbt.type_string()},\n {\"name\": \"buyer_accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_buyer_accepted_marketing\"},\n {\"name\": \"total_shipping_price_set\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\", \"alias\": \"is_test_order\"},\n {\"name\": \"token\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.058986, "supported_languages": null}, "macro.shopify_source.get_customer_columns": {"unique_id": "macro.shopify_source.get_customer_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_accepted_marketing\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"default_address_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"customer_id\"},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"orders_count\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"state\", \"datatype\": dbt.type_string(), \"alias\": \"account_state\"},\n {\"name\": \"tax_exempt\", \"datatype\": \"boolean\", \"alias\": \"is_tax_exempt\"},\n {\"name\": \"total_spent\", \"datatype\": dbt.type_float()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"verified_email\", \"datatype\": \"boolean\", \"alias\": \"is_verified_email\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.061436, "supported_languages": null}, "macro.shopify_source.get_order_line_refund_columns": {"unique_id": "macro.shopify_source.get_order_line_refund_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_refund_columns", "macro_sql": "{% macro get_order_line_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_refund_id\"},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_line_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_float()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"restock_type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0628, "supported_languages": null}, "macro.shopify_source.get_order_line_columns": {"unique_id": "macro.shopify_source.get_order_line_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_columns", "macro_sql": "{% macro get_order_line_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"fulfillable_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"gift_card\", \"datatype\": \"boolean\", \"alias\": \"is_gift_card\"},\n {\"name\": \"grams\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_id\"},\n {\"name\": \"index\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"pre_tax_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_charge_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_for_shipping_jan_3_rd_2020\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_shipping_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_shipping_interval_unit_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_subscription_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"total_discount\", \"datatype\": dbt.type_float()},\n {\"name\": \"variant_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.066646, "supported_languages": null}, "macro.shopify_source.get_product_columns": {"unique_id": "macro.shopify_source.get_product_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"handle\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"product_id\"},\n {\"name\": \"product_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"published_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"published_timestamp\"},\n {\"name\": \"published_scope\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.068531, "supported_languages": null}, "macro.shopify_source.get_product_variant_columns": {"unique_id": "macro.shopify_source.get_product_variant_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_variant_columns", "macro_sql": "{% macro get_product_variant_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"variant_id\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_item_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"image_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"position\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"compare_at_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"inventory_management\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"barcode\", \"datatype\": dbt.type_string()},\n {\"name\": \"grams\", \"datatype\": dbt.type_float()},\n {\"name\": \"inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"weight\", \"datatype\": dbt.type_float()},\n {\"name\": \"weight_unit\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_3\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"old_inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.072196, "supported_languages": null}, "macro.shopify_source.get_transaction_columns": {"unique_id": "macro.shopify_source.get_transaction_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_transaction_columns", "macro_sql": "{% macro get_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"transaction_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"device_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"gateway\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"message\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"parent_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"payment_avs_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_bin\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_cvv_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency_exchange_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_adjustment\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_original_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_final_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"error_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{% if target.type in ('redshift','postgres') %}\n {{ columns.append({\"name\": \"authorization\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"authorization\"}) }}\n{% else %}\n {\"name\": \"authorization\", \"datatype\": dbt.type_string()}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.077108, "supported_languages": null}, "macro.shopify_source.get_refund_columns": {"unique_id": "macro.shopify_source.get_refund_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"refund_id\"},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"restock\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0784798, "supported_languages": null}, "macro.shopify_source.get_order_adjustment_columns": {"unique_id": "macro.shopify_source.get_order_adjustment_columns", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_adjustment_columns", "macro_sql": "{% macro get_order_adjustment_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_adjustment_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"tax_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.079697, "supported_languages": null}, "macro.dbt_utils.xdb_deprecation_warning_without_replacement": {"unique_id": "macro.dbt_utils.xdb_deprecation_warning_without_replacement", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/cross_db_utils/deprecated/xdb_deprecation_warning.sql", "original_file_path": "macros/cross_db_utils/deprecated/xdb_deprecation_warning.sql", "name": "xdb_deprecation_warning_without_replacement", "macro_sql": "{% macro xdb_deprecation_warning_without_replacement(macro, package, model) %}\n {%- set error_message = \"Warning: the `\" ~ macro ~\"` macro is deprecated and will be removed in a future version of the package, once equivalent functionality is implemented in dbt Core. The \" ~ package ~ \".\" ~ model ~ \" model triggered this warning.\" -%}\n {%- do exceptions.warn(error_message) -%}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.080482, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"unique_id": "macro.dbt_utils.get_url_host", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0811808, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"unique_id": "macro.dbt_utils.default__get_url_host", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n split_part(\n split_part(\n replace(\n replace(\n replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n type_string()\n )}}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.08196, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"unique_id": "macro.dbt_utils.get_url_path", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.082858, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"unique_id": "macro.dbt_utils.default__get_url_path", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n replace(\n replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ position(\"'/'\", stripped_url) }}, 0),\n {{ position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n split_part(\n right(\n stripped_url,\n length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ safe_cast(\n parsed_path,\n type_string()\n )}}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.083701, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"unique_id": "macro.dbt_utils.get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.084235, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"unique_id": "macro.dbt_utils.default__get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 = split_part(split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0846589, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"unique_id": "macro.dbt_utils.test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.086123, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.087831, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"unique_id": "macro.dbt_utils.test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.089329, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"unique_id": "macro.dbt_utils.default__test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.091118, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"unique_id": "macro.dbt_utils.test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.092376, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"unique_id": "macro.dbt_utils.default__test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.092907, "supported_languages": null}, "macro.dbt_utils.test_recency": {"unique_id": "macro.dbt_utils.test_recency", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, group_by_columns)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.093906, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"unique_id": "macro.dbt_utils.default__test_recency", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, group_by_columns) %}\n\n{% set threshold = dateadd(datepart, interval * -1, current_timestamp_backcompat()) %}\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 max({{field}}) as most_recent\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0947928, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"unique_id": "macro.dbt_utils.test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0954921, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"unique_id": "macro.dbt_utils.default__test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.096268, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"unique_id": "macro.dbt_utils.test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.097514, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"unique_id": "macro.dbt_utils.default__test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0982301, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"unique_id": "macro.dbt_utils.test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.099169, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"unique_id": "macro.dbt_utils.default__test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.0997021, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"unique_id": "macro.dbt_utils.test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.100415, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"unique_id": "macro.dbt_utils.default__test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(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\nselect *\nfrom (\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 {{ model }}\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1010911, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.101984, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.102886, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"unique_id": "macro.dbt_utils.test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1036742, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"unique_id": "macro.dbt_utils.default__test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 {{ except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.104127, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"unique_id": "macro.dbt_utils.test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None, condition='1=1') %}\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 {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name, condition)) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "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": 1666978249.104885, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"unique_id": "macro.dbt_utils.default__test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name, condition) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nwith meet_condition as (\n select * from {{ model }} where {{ condition }}\n)\n\nselect\n {{ column_list }}\nfrom meet_condition\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.105448, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"unique_id": "macro.dbt_utils.test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.106446, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"unique_id": "macro.dbt_utils.default__test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.108104, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"unique_id": "macro.dbt_utils.test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.10938, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"unique_id": "macro.dbt_utils.default__test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 {{ type_timestamp() }})= cast({{ dateadd(datepart, interval, previous_column_name) }} as {{ type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.110749, "supported_languages": null}, "macro.dbt_utils.test_equality": {"unique_id": "macro.dbt_utils.test_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.111785, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"unique_id": "macro.dbt_utils.default__test_equality", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 {{ except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.11303, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"unique_id": "macro.dbt_utils.test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.113844, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"unique_id": "macro.dbt_utils.default__test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.114273, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.119081, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1213481, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"unique_id": "macro.dbt_utils.pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.121994, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"unique_id": "macro.dbt_utils.default__pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.122247, "supported_languages": null}, "macro.dbt_utils._is_relation": {"unique_id": "macro.dbt_utils._is_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.123075, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"unique_id": "macro.dbt_utils.pretty_time", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.123721, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"unique_id": "macro.dbt_utils.default__pretty_time", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.124136, "supported_languages": null}, "macro.dbt_utils.log_info": {"unique_id": "macro.dbt_utils.log_info", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.124738, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"unique_id": "macro.dbt_utils.default__log_info", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1249862, "supported_languages": null}, "macro.dbt_utils.slugify": {"unique_id": "macro.dbt_utils.slugify", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "name": "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\n{{ return(string) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.12575, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"unique_id": "macro.dbt_utils._is_ephemeral", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.127115, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"unique_id": "macro.dbt_utils.get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.128265, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"unique_id": "macro.dbt_utils.default__get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 {{ 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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.129303, "supported_languages": null}, "macro.dbt_utils.date_spine": {"unique_id": "macro.dbt_utils.date_spine", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.129749, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"unique_id": "macro.dbt_utils.default__date_spine", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 \"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 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.130303, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"unique_id": "macro.dbt_utils.nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.130869, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"unique_id": "macro.dbt_utils.default__nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.131368, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"unique_id": "macro.dbt_utils.get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.132419, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.13363, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"unique_id": "macro.dbt_utils.get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.134788, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"unique_id": "macro.dbt_utils.default__get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1353679, "supported_languages": null}, "macro.dbt_utils.generate_series": {"unique_id": "macro.dbt_utils.generate_series", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.135628, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"unique_id": "macro.dbt_utils.default__generate_series", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.136338, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"unique_id": "macro.dbt_utils.get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.137582, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.139034, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.140102, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.140552, "supported_languages": null}, "macro.dbt_utils.star": {"unique_id": "macro.dbt_utils.star", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1416802, "supported_languages": null}, "macro.dbt_utils.default__star": {"unique_id": "macro.dbt_utils.default__star", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='') -%}\n {%- do dbt_utils._is_relation(from, 'star') -%}\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\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 cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\n\n {%- if cols|length <= 0 -%}\n {{- return('*') -}}\n {%- else -%}\n {%- for col in cols %}\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}{{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\n {%- if not loop.last %},{{ '\\n ' }}{% endif %}\n {%- endfor -%}\n {% endif %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.143209, "supported_languages": null}, "macro.dbt_utils.unpivot": {"unique_id": "macro.dbt_utils.unpivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1450398, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"unique_id": "macro.dbt_utils.default__unpivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 {{ type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.1473742, "supported_languages": null}, "macro.dbt_utils.union_relations": {"unique_id": "macro.dbt_utils.union_relations", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1519842, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"unique_id": "macro.dbt_utils.default__union_relations", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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({{ string_literal(relation) }} as {{ 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 -%}", "resource_type": "macro", "tags": [], "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": 1666978249.1573231, "supported_languages": null}, "macro.dbt_utils.group_by": {"unique_id": "macro.dbt_utils.group_by", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1581671, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"unique_id": "macro.dbt_utils.default__group_by", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.158626, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"unique_id": "macro.dbt_utils.deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.159829, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"unique_id": "macro.dbt_utils.default__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160169, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"unique_id": "macro.dbt_utils.redshift__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160465, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"unique_id": "macro.dbt_utils.postgres__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160745, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"unique_id": "macro.dbt_utils.snowflake__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.160979, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"unique_id": "macro.dbt_utils.bigquery__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.161279, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"unique_id": "macro.dbt_utils.surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.161974, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"unique_id": "macro.dbt_utils.default__surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 variable scoped to the dbt_utils package 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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1623302, "supported_languages": null}, "macro.dbt_utils.safe_add": {"unique_id": "macro.dbt_utils.safe_add", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1631649, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"unique_id": "macro.dbt_utils.default__safe_add", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1640399, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"unique_id": "macro.dbt_utils.nullcheck", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.16475, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"unique_id": "macro.dbt_utils.default__nullcheck", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.165239, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.167565, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.168202, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.1694431, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1701581, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"unique_id": "macro.dbt_utils.get_column_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.172082, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"unique_id": "macro.dbt_utils.default__get_column_values", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.174355, "supported_languages": null}, "macro.dbt_utils.pivot": {"unique_id": "macro.dbt_utils.pivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.176045, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"unique_id": "macro.dbt_utils.default__pivot", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 }} '{{ 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.177218, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.177962, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.179274, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"unique_id": "macro.dbt_utils.width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.181501, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"unique_id": "macro.dbt_utils.default__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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, type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.182132, "supported_languages": null}, "macro.dbt_utils.redshift__width_bucket": {"unique_id": "macro.dbt_utils.redshift__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "redshift__width_bucket", "macro_sql": "{% macro redshift__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 exactly at the bucket edge\n case\n when\n {{ dbt.safe_cast(expr, type_numeric() ) }} %\n {{ dbt.safe_cast(bin_size, 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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.182743, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"unique_id": "macro.dbt_utils.snowflake__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.183019, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"unique_id": "macro.dbt_utils.get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.183661, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.184513, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"unique_id": "macro.dbt_utils.generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.185211, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"unique_id": "macro.dbt_utils.default__generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "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 \" ~ type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ hash(concat(fields)) }}\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "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": 1666978249.186099, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"unique_id": "macro.dbt_utils.get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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", "resource_type": "macro", "tags": [], "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": 1666978249.18672, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"unique_id": "macro.dbt_utils.default__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.18691, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.187129, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"unique_id": "macro.dbt_utils.degrees_to_radians", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.1889029, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"unique_id": "macro.dbt_utils.haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.189544, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"unique_id": "macro.dbt_utils.default__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.191375, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"unique_id": "macro.dbt_utils.bigquery__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.192557, "supported_languages": null}, "macro.klaviyo_source.get_campaign_columns": {"unique_id": "macro.klaviyo_source.get_campaign_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_campaign_columns.sql", "original_file_path": "macros/get_campaign_columns.sql", "name": "get_campaign_columns", "macro_sql": "{% macro get_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"campaign_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email_template_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_segmented\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"send_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"sent_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_label\", \"datatype\": dbt.type_string()},\n {\"name\": \"subject\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.195486, "supported_languages": null}, "macro.klaviyo_source.get_metric_columns": {"unique_id": "macro.klaviyo_source.get_metric_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_metric_columns.sql", "original_file_path": "macros/get_metric_columns.sql", "name": "get_metric_columns", "macro_sql": "{% macro get_metric_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"integration_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.196935, "supported_languages": null}, "macro.klaviyo_source.get_flow_columns": {"unique_id": "macro.klaviyo_source.get_flow_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_flow_columns.sql", "original_file_path": "macros/get_flow_columns.sql", "name": "get_flow_columns", "macro_sql": "{% macro get_flow_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_filter\", \"datatype\": dbt.type_string()}\n] %}\n\n{% if target.type == 'databricks' %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": False} ) }}\n{% else %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": True} ) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.199243, "supported_languages": null}, "macro.klaviyo_source.get_integration_columns": {"unique_id": "macro.klaviyo_source.get_integration_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_integration_columns.sql", "original_file_path": "macros/get_integration_columns.sql", "name": "get_integration_columns", "macro_sql": "{% macro get_integration_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"category\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1666978249.2004428, "supported_languages": null}, "macro.klaviyo_source.get_person_columns": {"unique_id": "macro.klaviyo_source.get_person_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_person_columns.sql", "original_file_path": "macros/get_person_columns.sql", "name": "get_person_columns", "macro_sql": "{% macro get_person_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"city\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"latitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"longitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"organization\", \"datatype\": dbt.type_string()},\n {\"name\": \"phone_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"region\", \"datatype\": dbt.type_string()},\n {\"name\": \"timezone\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"zip\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__person_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.203687, "supported_languages": null}, "macro.klaviyo_source.get_event_columns": {"unique_id": "macro.klaviyo_source.get_event_columns", "package_name": "klaviyo_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_event_columns.sql", "original_file_path": "macros/get_event_columns.sql", "name": "get_event_columns", "macro_sql": "{% macro get_event_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"_variation\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"datetime\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"flow_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"flow_message_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metric_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"person_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"timestamp\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"uuid\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_value\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__event_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.206198, "supported_languages": null}, "macro.spark_utils.get_tables": {"unique_id": "macro.spark_utils.get_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.213404, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"unique_id": "macro.spark_utils.get_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.214699, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"unique_id": "macro.spark_utils.get_statistic_columns", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.216099, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"unique_id": "macro.spark_utils.spark_optimize_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2171578, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.218202, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"unique_id": "macro.spark_utils.spark_analyze_tables", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2194612, "supported_languages": null}, "macro.spark_utils.spark__concat": {"unique_id": "macro.spark_utils.spark__concat", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "name": "spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2199638, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"unique_id": "macro.spark_utils.spark__type_numeric", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "name": "spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.22029, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"unique_id": "macro.spark_utils.spark__dateadd", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.224378, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"unique_id": "macro.spark_utils.spark__datediff", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.234882, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"unique_id": "macro.spark_utils.spark__current_timestamp", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.235285, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.235389, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"unique_id": "macro.spark_utils.spark__split_part", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.236377, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.238977, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.239478, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.239879, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1666978249.2402759, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"unique_id": "macro.spark_utils.assert_not_null", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.240934, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"unique_id": "macro.spark_utils.default__assert_not_null", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.241211, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"unique_id": "macro.spark_utils.spark__convert_timezone", "package_name": "spark_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.241581, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"unique_id": "macro.fivetran_utils.enabled_vars", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.242218, "supported_languages": null}, "macro.fivetran_utils.percentile": {"unique_id": "macro.fivetran_utils.percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2435079, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"unique_id": "macro.fivetran_utils.default__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.243766, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"unique_id": "macro.fivetran_utils.redshift__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244024, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"unique_id": "macro.fivetran_utils.bigquery__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244243, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"unique_id": "macro.fivetran_utils.postgres__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.244458, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"unique_id": "macro.fivetran_utils.spark__percentile", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.24468, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"unique_id": "macro.fivetran_utils.pivot_json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "name": "pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2453718, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"unique_id": "macro.fivetran_utils.persist_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.246445, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"unique_id": "macro.fivetran_utils.json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.247937, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"unique_id": "macro.fivetran_utils.default__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.248545, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"unique_id": "macro.fivetran_utils.redshift__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2489548, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"unique_id": "macro.fivetran_utils.bigquery__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2493272, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"unique_id": "macro.fivetran_utils.postgres__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.249695, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"unique_id": "macro.fivetran_utils.snowflake__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2500842, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"unique_id": "macro.fivetran_utils.spark__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.250456, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"unique_id": "macro.fivetran_utils.max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251173, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"unique_id": "macro.fivetran_utils.default__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251322, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"unique_id": "macro.fivetran_utils.snowflake__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251483, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"unique_id": "macro.fivetran_utils.bigquery__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.251643, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"unique_id": "macro.fivetran_utils.calculated_fields", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.252386, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"unique_id": "macro.fivetran_utils.seed_data_helper", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25338, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"unique_id": "macro.fivetran_utils.fill_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "name": "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.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 {% endfor %}\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2543192, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"unique_id": "macro.fivetran_utils.string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25506, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"unique_id": "macro.fivetran_utils.default__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.25525, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"unique_id": "macro.fivetran_utils.snowflake__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2554429, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"unique_id": "macro.fivetran_utils.redshift__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.255636, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"unique_id": "macro.fivetran_utils.spark__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2558331, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"unique_id": "macro.fivetran_utils.timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260175, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"unique_id": "macro.fivetran_utils.default__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260431, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.260658, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2608771, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.263434, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"unique_id": "macro.fivetran_utils.try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.264889, "supported_languages": null}, "macro.fivetran_utils.default__safe_cast": {"unique_id": "macro.fivetran_utils.default__safe_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.265105, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"unique_id": "macro.fivetran_utils.redshift__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.265514, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"unique_id": "macro.fivetran_utils.postgres__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2659369, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"unique_id": "macro.fivetran_utils.snowflake__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.266135, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"unique_id": "macro.fivetran_utils.bigquery__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.266319, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"unique_id": "macro.fivetran_utils.spark__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2665012, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"unique_id": "macro.fivetran_utils.source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2673259, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"unique_id": "macro.fivetran_utils.default__source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.268212, "supported_languages": null}, "macro.fivetran_utils.first_value": {"unique_id": "macro.fivetran_utils.first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269011, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"unique_id": "macro.fivetran_utils.default__first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269305, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"unique_id": "macro.fivetran_utils.redshift__first_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.269618, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"unique_id": "macro.fivetran_utils.add_dbt_source_relation", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2700748, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"unique_id": "macro.fivetran_utils.add_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "name": "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.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 {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2718651, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"unique_id": "macro.fivetran_utils.union_relations", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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_utils.string_literal(relation) }} as {{ dbt_utils.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", "resource_type": "macro", "tags": [], "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": 1666978249.2774742, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"unique_id": "macro.fivetran_utils.union_tables", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.277979, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"unique_id": "macro.fivetran_utils.snowflake_seed_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2785852, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"unique_id": "macro.fivetran_utils.fill_staging_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2807648, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"unique_id": "macro.fivetran_utils.quote_column", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark') %}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2816792, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"unique_id": "macro.fivetran_utils.json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2827232, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"unique_id": "macro.fivetran_utils.default__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2829592, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"unique_id": "macro.fivetran_utils.snowflake__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2831948, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"unique_id": "macro.fivetran_utils.redshift__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2834508, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"unique_id": "macro.fivetran_utils.bigquery__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.283681, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"unique_id": "macro.fivetran_utils.postgres__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.283935, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"unique_id": "macro.fivetran_utils.collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.285204, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"unique_id": "macro.fivetran_utils.default__collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.286698, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"unique_id": "macro.fivetran_utils.timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.287744, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"unique_id": "macro.fivetran_utils.default__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.28798, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2882, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"unique_id": "macro.fivetran_utils.redshift__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.288428, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"unique_id": "macro.fivetran_utils.postgres__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.288641, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"unique_id": "macro.fivetran_utils.spark__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289002, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"unique_id": "macro.fivetran_utils.ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289453, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"unique_id": "macro.fivetran_utils.default__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289598, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"unique_id": "macro.fivetran_utils.snowflake__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.289731, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.290717, "supported_languages": null}, "macro.fivetran_utils.union_data": {"unique_id": "macro.fivetran_utils.union_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.292854, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"unique_id": "macro.fivetran_utils.default__union_data", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% elif var(union_database_variable, none) %}\n\n {% set relations = [] %}\n\n {% for database in var(union_database_variable) %}\n\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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% else %}\n\n select * \n from {{ var(default_variable) }}\n\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.296416, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"unique_id": "macro.fivetran_utils.dummy_coalesce_value", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2987, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"unique_id": "macro.fivetran_utils.array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.299219, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"unique_id": "macro.fivetran_utils.default__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2993631, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"unique_id": "macro.fivetran_utils.redshift__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.2995079, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"unique_id": "macro.fivetran_utils.empty_variable_warning", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.300174, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"unique_id": "macro.fivetran_utils.enabled_vars_one_true", "package_name": "fivetran_utils", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1666978249.300826, "supported_languages": null}}, "docs": {"dbt.__overview__": {"unique_id": "dbt.__overview__", "package_name": "dbt", "root_path": "/usr/local/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "overview.md", "original_file_path": "docs/overview.md", "name": "__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"}, "shopify_source._fivetran_synced": {"unique_id": "shopify_source._fivetran_synced", "package_name": "shopify_source", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "docs.md", "original_file_path": "models/docs.md", "name": "_fivetran_synced", "block_contents": "The time when a record was last updated by Fivetran."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {"seed.shopify_holistic_reporting_integration_tests.flow_snowflake": [{"resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "linkedin_pages_integration_tests_1", "fqn": ["shopify_holistic_reporting_integration_tests", "flow_snowflake"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow_snowflake", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow_snowflake.csv", "original_file_path": "seeds/flow_snowflake.csv", "name": "flow_snowflake", "alias": "flow_snowflake", "checksum": {"name": "sha256", "checksum": "6bdc1fd92ee1a5bd818f2c9dc35cb33e0b4549d4d0b325569e0518843ce02711"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}, "enabled": "{{ true if target.type == 'snowflake' else false }}"}, "created_at": 1666978249.664493, "config_call_dict": {}}]}, "parent_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": [], "seed.shopify_holistic_reporting_integration_tests.flow": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": [], "seed.shopify_holistic_reporting_integration_tests.integration": [], "seed.shopify_holistic_reporting_integration_tests.metric": [], "seed.shopify_holistic_reporting_integration_tests.person": [], "seed.shopify_holistic_reporting_integration_tests.event": [], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": [], "seed.shopify_holistic_reporting_integration_tests.campaign": [], "model.shopify_source.stg_shopify__order_line": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"], "model.shopify_source.stg_shopify__refund": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"], "model.shopify_source.stg_shopify__product": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"], "model.shopify_source.stg_shopify__order": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"], "model.shopify_source.stg_shopify__transaction": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"], "model.shopify_source.stg_shopify__customer": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"], "model.shopify_source.stg_shopify__customer_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"], "model.shopify_source.stg_shopify__order_line_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"], "model.shopify_source.stg_shopify__refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"], "model.shopify_source.stg_shopify__product_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"], "model.shopify_source.stg_shopify__transaction_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"], "model.shopify_source.stg_shopify__product_variant_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"], "model.shopify_source.stg_shopify__order_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["seed.shopify_holistic_reporting_integration_tests.event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["seed.shopify_holistic_reporting_integration_tests.metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["seed.shopify_holistic_reporting_integration_tests.campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["seed.shopify_holistic_reporting_integration_tests.integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["seed.shopify_holistic_reporting_integration_tests.flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["seed.shopify_holistic_reporting_integration_tests.person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.klaviyo__events"], "model.klaviyo.klaviyo__persons": ["model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__flows": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo.klaviyo__campaigns": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo.klaviyo__events": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo_source.stg_klaviyo__event"], "model.shopify.shopify__customer_cohorts": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"], "model.shopify.shopify__orders": ["model.shopify.shopify__orders__order_line_aggregates", "model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify.shopify__products": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders", "model.shopify_source.stg_shopify__product"], "model.shopify.shopify__transactions": ["model.shopify_source.stg_shopify__transaction"], "model.shopify.shopify__customers": ["model.shopify.shopify__customers__order_aggregates", "model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant"], "model.shopify.shopify__calendar": [], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify_source.stg_shopify__order_line"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__transactions", "model.shopify_source.stg_shopify__order"], "model.shopify.shopify__orders__order_refunds": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.klaviyo.klaviyo__events", "model.shopify.shopify__orders", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify.shopify__order_lines", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.klaviyo.klaviyo__events"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": ["model.shopify_source.stg_shopify__customer"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": ["model.shopify_source.stg_shopify__order_line_refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": ["model.shopify_source.stg_shopify__order_line"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": ["model.shopify_source.stg_shopify__order"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": ["model.shopify_source.stg_shopify__product"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": ["model.shopify_source.stg_shopify__product_variant"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": ["model.shopify_source.stg_shopify__transaction"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": ["model.shopify_source.stg_shopify__refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": ["model.shopify_source.stg_shopify__order_adjustment"], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": ["model.klaviyo.klaviyo__events"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": ["model.klaviyo.klaviyo__events"], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": ["model.klaviyo.int_klaviyo__person_metrics"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": ["model.klaviyo.int_klaviyo__person_metrics"], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": ["model.shopify.shopify__customer_cohorts"], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": ["model.shopify.shopify__customer_cohorts"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": ["model.shopify.shopify__orders"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": ["model.shopify.shopify__customers"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": ["model.shopify.shopify__products"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": ["model.shopify.shopify__order_lines"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": ["model.shopify.shopify__transactions"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": ["model.shopify.shopify__customers__order_aggregates"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": ["model.shopify.shopify__orders__order_line_aggregates"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}, "child_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": ["model.shopify_source.stg_shopify__order_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": ["model.shopify_source.stg_shopify__order_line_refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": ["model.shopify_source.stg_shopify__order_adjustment_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": ["model.shopify_source.stg_shopify__product_variant_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": ["model.shopify_source.stg_shopify__refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": ["model.shopify_source.stg_shopify__transaction_tmp"], "seed.shopify_holistic_reporting_integration_tests.flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": ["model.shopify_source.stg_shopify__product_tmp"], "seed.shopify_holistic_reporting_integration_tests.integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp"], "seed.shopify_holistic_reporting_integration_tests.metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp"], "seed.shopify_holistic_reporting_integration_tests.person": ["model.klaviyo_source.stg_klaviyo__person_tmp"], "seed.shopify_holistic_reporting_integration_tests.event": ["model.klaviyo_source.stg_klaviyo__event_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": ["model.shopify_source.stg_shopify__customer_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": ["model.shopify_source.stg_shopify__order_line_tmp"], "seed.shopify_holistic_reporting_integration_tests.campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.shopify_source.stg_shopify__order_line": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders__order_line_aggregates", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"], "model.shopify_source.stg_shopify__refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"], "model.shopify_source.stg_shopify__product": ["model.shopify.shopify__products", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify.shopify__order_lines", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"], "model.shopify_source.stg_shopify__order": ["model.shopify.shopify__customers__order_aggregates", "model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"], "model.shopify_source.stg_shopify__transaction": ["model.shopify.shopify__transactions", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"], "model.shopify_source.stg_shopify__customer": ["model.shopify.shopify__customers", "model.shopify.shopify__customers", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"], "model.shopify_source.stg_shopify__customer_tmp": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify_source.stg_shopify__order_line_tmp": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__order_line"], "model.shopify_source.stg_shopify__refund_tmp": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_source.stg_shopify__product_tmp": ["model.shopify_source.stg_shopify__product", "model.shopify_source.stg_shopify__product"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["model.shopify_source.stg_shopify__order_adjustment", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__order_line_refund"], "model.shopify_source.stg_shopify__transaction_tmp": ["model.shopify_source.stg_shopify__transaction", "model.shopify_source.stg_shopify__transaction"], "model.shopify_source.stg_shopify__product_variant_tmp": ["model.shopify_source.stg_shopify__product_variant", "model.shopify_source.stg_shopify__product_variant"], "model.shopify_source.stg_shopify__order_tmp": ["model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__persons", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__flows", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo.int_klaviyo__event_attribution", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["model.klaviyo_source.stg_klaviyo__event", "model.klaviyo_source.stg_klaviyo__event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"], "model.klaviyo.klaviyo__persons": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"], "model.klaviyo.klaviyo__flows": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"], "model.klaviyo.klaviyo__campaigns": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"], "model.klaviyo.klaviyo__events": ["model.klaviyo.klaviyo__person_campaign_flow", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__flows", "model.klaviyo.klaviyo__flows", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__events", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"], "model.shopify.shopify__customer_cohorts": ["test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"], "model.shopify.shopify__orders": ["model.shopify.shopify__customer_cohorts", "model.shopify.shopify__products", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"], "model.shopify.shopify__products": ["test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"], "model.shopify.shopify__transactions": ["model.shopify.shopify__customers__order_aggregates", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"], "model.shopify.shopify__customers": ["model.shopify.shopify__customer_cohorts", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__products", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"], "model.shopify.shopify__calendar": ["model.shopify.shopify__customer_cohorts"], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify.shopify__orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__customers", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"], "model.shopify.shopify__orders__order_refunds": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": [], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": [], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": [], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": [], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": [], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": [], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": [], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": [], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": [], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": [], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": [], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": [], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": [], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": [], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": [], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": [], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": [], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": [], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": [], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": [], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v7.json", "dbt_version": "1.3.0", "generated_at": "2022-12-19T20:41:08.149866Z", "invocation_id": "3d9ead59-11b7-4031-9555-dbd173d712a2", "env": {}, "project_id": "0d919ec91381ade1c67705291b214e1c", "user_id": "8929baf0-9bc1-477e-9a57-eb8b0db4da62", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "id": "bigint", "customer_id": "bigint", "location_id": "bigint", "user_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_data.csv", "original_file_path": "seeds/shopify_order_data.csv", "name": "shopify_order_data", "alias": "shopify_order_data", "checksum": {"name": "sha256", "checksum": "4d0dd043a886a0d9e7680e7ee2cd132717490f75d3a06fe7c38956d901976146"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "processed_at": "timestamp", "cancelled_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "customer_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.4223528, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "location_id": "bigint", "refund_id": "bigint", "order_line_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_refund_data.csv", "original_file_path": "seeds/shopify_order_line_refund_data.csv", "name": "shopify_order_line_refund_data", "alias": "shopify_order_line_refund_data", "checksum": {"name": "sha256", "checksum": "0564bef778890f3e086e4057b2536aaa6cfeceb2f9c9bd95f44d4b9f04a33dc6"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "location_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_line_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.428328, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_line_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_adjustment_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_adjustment_data.csv", "original_file_path": "seeds/shopify_order_adjustment_data.csv", "name": "shopify_order_adjustment_data", "alias": "shopify_order_adjustment_data", "checksum": {"name": "sha256", "checksum": "48ce96540f19450088c661fd48bd8f6d58bb4ca13a1f048880e9984be367172e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.42964, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_adjustment_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "product_id": "bigint", "inventory_item_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_variant_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_variant_data.csv", "original_file_path": "seeds/shopify_product_variant_data.csv", "name": "shopify_product_variant_data", "alias": "shopify_product_variant_data", "checksum": {"name": "sha256", "checksum": "3430f8a8a9139a753a727caa7e10ac2ac02c4e2683a37ed933566367d2f6200e"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "inventory_item_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.4310029, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_product_variant_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "user_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_refund_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_refund_data.csv", "original_file_path": "seeds/shopify_refund_data.csv", "name": "shopify_refund_data", "alias": "shopify_refund_data", "checksum": {"name": "sha256", "checksum": "8d8bc98681d9b0d57a43af3fc99ff13cc42401d97e49bba41c1fafb28f858d23"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "user_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.4322371, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_refund_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "id": "bigint", "order_id": "bigint", "refund_id": "bigint", "receipt": "varchar(100)"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_transaction_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_transaction_data.csv", "original_file_path": "seeds/shopify_transaction_data.csv", "name": "shopify_transaction_data", "alias": "shopify_transaction_data", "checksum": {"name": "sha256", "checksum": "def7b7fc64e42148b900dcd1f7327b470e5d3b0ed8e73f263e46a715ecb09199"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "refund_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "receipt": "{{ 'varchar(100)' if target.name in ('redshift', 'postgres') else 'string' }}"}}, "created_at": 1671482450.433474, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_transaction_data\""}, "seed.shopify_holistic_reporting_integration_tests.flow": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "trigger": "varchar"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "quote_columns": false, "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "flow"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow.csv", "original_file_path": "seeds/flow.csv", "name": "flow", "alias": "flow", "checksum": {"name": "sha256", "checksum": "8a59e1c986a7509b15603761cb0225587bd8db8ae81ee0b146ca821be8103627"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type == 'redshift' else false }}", "column_types": {"trigger": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}, "enabled": "{{ true if target.type != 'snowflake' else false }}"}, "created_at": 1671482450.436068, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"flow\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_product_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_product_data.csv", "original_file_path": "seeds/shopify_product_data.csv", "name": "shopify_product_data", "alias": "shopify_product_data", "checksum": {"name": "sha256", "checksum": "5cc03f90512ac04a6526220040085e4e0488b62ef22e8b201424c7d7cf1bf847"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "published_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.437252, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_product_data\""}, "seed.shopify_holistic_reporting_integration_tests.integration": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "integration"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "integration.csv", "original_file_path": "seeds/integration.csv", "name": "integration", "alias": "integration", "checksum": {"name": "sha256", "checksum": "7d65e88ffe7faca2f24289441001007cc8222d5bb8f788c2807072bd7bb0b022"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1671482450.438455, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"integration\""}, "seed.shopify_holistic_reporting_integration_tests.metric": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "metric"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "metric.csv", "original_file_path": "seeds/metric.csv", "name": "metric", "alias": "metric", "checksum": {"name": "sha256", "checksum": "155dde6f21d4cf0d8d11b898b4c1f310c2ffbe44c897aaacd5dd31a607bd447a"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1671482450.440105, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"metric\""}, "seed.shopify_holistic_reporting_integration_tests.person": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "phone_number": "varchar"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "person"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.person", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "person.csv", "original_file_path": "seeds/person.csv", "name": "person", "alias": "person", "checksum": {"name": "sha256", "checksum": "6f915292a8aba951a356baacc8e65fac88b0a28e98d6cff84f708aeaf68d9ceb"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"phone_number": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1671482450.4413161, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"person\""}, "seed.shopify_holistic_reporting_integration_tests.event": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "flow_id": "varchar", "campaign_id": "varchar"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "event"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.event", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "event.csv", "original_file_path": "seeds/event.csv", "name": "event", "alias": "event", "checksum": {"name": "sha256", "checksum": "fb7883912895ceb24123ecd1e37c8cd3d8e837493d1ed2007fd64daf45a8581c"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"flow_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}", "campaign_id": "{{ 'string' if target.type in ('bigquery', 'spark', 'databricks') else 'varchar' }}"}}, "created_at": 1671482450.442584, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"event\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "created_at": "timestamp", "updated_at": "timestamp", "id": "bigint", "default_address_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_customer_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_customer_data.csv", "original_file_path": "seeds/shopify_customer_data.csv", "name": "shopify_customer_data", "alias": "shopify_customer_data", "checksum": {"name": "sha256", "checksum": "79bc0a5972c321cefe2973acdd443ce1d42e36b3b23b2298151046d23bdf4bea"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"created_at": "timestamp", "updated_at": "timestamp", "_fivetran_synced": "timestamp", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "default_address_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.444031, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_customer_data\""}, "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp", "order_id": "bigint", "id": "bigint", "product_id": "bigint", "variant_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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "shopify_order_line_data"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "shopify_order_line_data.csv", "original_file_path": "seeds/shopify_order_line_data.csv", "name": "shopify_order_line_data", "alias": "shopify_order_line_data", "checksum": {"name": "sha256", "checksum": "cabaa49c9bd299b34eb2154893a6dd399fbbad7e4ad7036293c8b4cb599199e0"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp", "order_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "product_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}", "variant_id": "{%- if target.type == 'bigquery' -%} INT64 {%- else -%} bigint {%- endif -%}"}}, "created_at": 1671482450.445615, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_line_data\""}, "seed.shopify_holistic_reporting_integration_tests.campaign": {"compiled": true, "resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "campaign"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "campaign.csv", "original_file_path": "seeds/campaign.csv", "name": "campaign", "alias": "campaign", "checksum": {"name": "sha256", "checksum": "e80312165b7d9198633569c5c50aaaf7e73df74dff2d46600adca3fef4b8dd43"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}}, "created_at": 1671482450.446984, "compiled_code": "", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests\".\"campaign\""}, "model.shopify_source.stg_shopify__order_line": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line"], "unique_id": "model.shopify_source.stg_shopify__order_line", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_line_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_tmp')),\n staging_columns=get_order_line_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_pass_through_columns') %}\n ,\n {{ var('order_line_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line.sql", "original_file_path": "models/stg_shopify__order_line.sql", "name": "stg_shopify__order_line", "alias": "stg_shopify__order_line", "checksum": {"name": "sha256", "checksum": "bb641f0d784534dc9d6d86bda3391b7c905b0a739c6cf34ef60e4716b5fd86ce"}, "tags": [], "refs": [["stg_shopify__order_line_tmp"], ["stg_shopify__order_line_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.025268, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n fulfillable_quantity\n \n as \n \n fulfillable_quantity\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n gift_card\n \n as is_gift_card , \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n id\n \n as order_line_id , \n \n \n index\n \n as \n \n index\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n pre_tax_price\n \n as \n \n pre_tax_price\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n product_id\n \n as \n \n product_id\n \n, \n cast(null as numeric(28,6)) as \n \n property_charge_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_for_shipping_jan_3_rd_2020\n \n , \n cast(null as numeric(28,6)) as \n \n property_shipping_interval_frequency\n \n , \n cast(null as TEXT) as \n \n property_shipping_interval_unit_type\n \n , \n cast(null as numeric(28,6)) as \n \n property_subscription_id\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping , \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n title\n \n as \n \n title\n \n, \n \n \n total_discount\n \n as \n \n total_discount\n \n, \n \n \n variant_id\n \n as \n \n variant_id\n \n, \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\""}, "model.shopify_source.stg_shopify__refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__refund"], "unique_id": "model.shopify_source.stg_shopify__refund", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__refund_tmp')),\n staging_columns=get_refund_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__refund.sql", "original_file_path": "models/stg_shopify__refund.sql", "name": "stg_shopify__refund", "alias": "stg_shopify__refund", "checksum": {"name": "sha256", "checksum": "db92848ca19e65385f44b51e662bc9a3c773fecefe896cbddd1f23d22d078e82"}, "tags": [], "refs": [["stg_shopify__refund_tmp"], ["stg_shopify__refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a refund within Shopify.", "columns": {"refund_id": {"name": "refund_id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1671482451.04965, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as \n \n created_at\n \n, \n \n \n id\n \n as refund_id , \n \n \n note\n \n as \n \n note\n \n, \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n processed_at\n \n as \n \n processed_at\n \n, \n \n \n restock\n \n as \n \n restock\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\""}, "model.shopify_source.stg_shopify__product": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product"], "unique_id": "model.shopify_source.stg_shopify__product", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_tmp')),\n staging_columns=get_product_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_pass_through_columns') %}\n ,\n {{ var('product_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product.sql", "original_file_path": "models/stg_shopify__product.sql", "name": "stg_shopify__product", "alias": "stg_shopify__product", "checksum": {"name": "sha256", "checksum": "dd30ab5bbf28fc246f4d4625c8057bd05f59c9e8f115d8c72f301b22236b59eb"}, "tags": [], "refs": [["stg_shopify__product_tmp"], ["stg_shopify__product_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.03766, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n handle\n \n as \n \n handle\n \n, \n \n \n id\n \n as product_id , \n \n \n product_type\n \n as \n \n product_type\n \n, \n \n \n published_at\n \n as published_timestamp , \n \n \n published_scope\n \n as \n \n published_scope\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n vendor\n \n as \n \n vendor\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product\""}, "model.shopify_source.stg_shopify__product_variant": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_product_variant_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__product_variant"], "unique_id": "model.shopify_source.stg_shopify__product_variant", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__product_variant_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__product_variant_tmp')),\n staging_columns=get_product_variant_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('product_variant_pass_through_columns') %}\n ,\n {{ var('product_variant_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__product_variant.sql", "original_file_path": "models/stg_shopify__product_variant.sql", "name": "stg_shopify__product_variant", "alias": "stg_shopify__product_variant", "checksum": {"name": "sha256", "checksum": "6d09962a9153df0f1b3220ecfe3ecd87997d5e5b87187a985a7c25006ca8b229"}, "tags": [], "refs": [["stg_shopify__product_variant_tmp"], ["stg_shopify__product_variant_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__product_variant.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.04256, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_variant_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as variant_id , \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n product_id\n \n as \n \n product_id\n \n, \n \n \n inventory_item_id\n \n as \n \n inventory_item_id\n \n, \n \n \n image_id\n \n as \n \n image_id\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n price\n \n as \n \n price\n \n, \n \n \n sku\n \n as \n \n sku\n \n, \n \n \n position\n \n as \n \n position\n \n, \n \n \n inventory_policy\n \n as \n \n inventory_policy\n \n, \n \n \n compare_at_price\n \n as \n \n compare_at_price\n \n, \n \n \n fulfillment_service\n \n as \n \n fulfillment_service\n \n, \n \n \n inventory_management\n \n as \n \n inventory_management\n \n, \n \n \n taxable\n \n as is_taxable , \n \n \n barcode\n \n as \n \n barcode\n \n, \n \n \n grams\n \n as \n \n grams\n \n, \n \n \n inventory_quantity\n \n as \n \n inventory_quantity\n \n, \n \n \n weight\n \n as \n \n weight\n \n, \n \n \n weight_unit\n \n as \n \n weight_unit\n \n, \n \n \n option_1\n \n as \n \n option_1\n \n, \n \n \n option_2\n \n as \n \n option_2\n \n, \n \n \n option_3\n \n as \n \n option_3\n \n, \n \n \n tax_code\n \n as \n \n tax_code\n \n, \n \n \n old_inventory_quantity\n \n as \n \n old_inventory_quantity\n \n, \n \n \n requires_shipping\n \n as is_requiring_shipping \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_variant\""}, "model.shopify_source.stg_shopify__order": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order"], "unique_id": "model.shopify_source.stg_shopify__order", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__order_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_tmp')),\n staging_columns=get_order_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_pass_through_columns') %}\n ,\n {{ var('order_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order.sql", "original_file_path": "models/stg_shopify__order.sql", "name": "stg_shopify__order", "alias": "stg_shopify__order", "checksum": {"name": "sha256", "checksum": "a4b7cdee44f261fe11e487f1022c1f7bd57196220a453bff382c1876ee5a2192"}, "tags": [], "refs": [["stg_shopify__order_tmp"], ["stg_shopify__order_tmp"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.0355682, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n id\n \n as order_id , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n updated_at\n \n as updated_timestamp , \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n total_discounts\n \n as \n \n total_discounts\n \n, \n \n \n total_line_items_price\n \n as \n \n total_line_items_price\n \n, \n \n \n total_price\n \n as \n \n total_price\n \n, \n \n \n total_tax\n \n as \n \n total_tax\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n subtotal_price\n \n as \n \n subtotal_price\n \n, \n \n \n taxes_included\n \n as has_taxes_included , \n \n \n total_weight\n \n as \n \n total_weight\n \n, \n \n \n landing_site_base_url\n \n as \n \n landing_site_base_url\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n note\n \n as \n \n note\n \n, \n \n \n number\n \n as \n \n number\n \n, \n \n \n order_number\n \n as \n \n order_number\n \n, \n \n \n cancel_reason\n \n as \n \n cancel_reason\n \n, \n \n \n cancelled_at\n \n as cancelled_timestamp , \n \n \n cart_token\n \n as \n \n cart_token\n \n, \n \n \n checkout_token\n \n as \n \n checkout_token\n \n, \n \n \n closed_at\n \n as closed_timestamp , \n \n \n created_at\n \n as created_timestamp , \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n customer_id\n \n as \n \n customer_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n financial_status\n \n as \n \n financial_status\n \n, \n \n \n fulfillment_status\n \n as \n \n fulfillment_status\n \n, \n \n \n processing_method\n \n as \n \n processing_method\n \n, \n \n \n referring_site\n \n as \n \n referring_site\n \n, \n \n \n billing_address_address_1\n \n as \n \n billing_address_address_1\n \n, \n \n \n billing_address_address_2\n \n as \n \n billing_address_address_2\n \n, \n \n \n billing_address_city\n \n as \n \n billing_address_city\n \n, \n \n \n billing_address_company\n \n as \n \n billing_address_company\n \n, \n \n \n billing_address_country\n \n as \n \n billing_address_country\n \n, \n \n \n billing_address_country_code\n \n as \n \n billing_address_country_code\n \n, \n \n \n billing_address_first_name\n \n as \n \n billing_address_first_name\n \n, \n \n \n billing_address_last_name\n \n as \n \n billing_address_last_name\n \n, \n \n \n billing_address_latitude\n \n as \n \n billing_address_latitude\n \n, \n \n \n billing_address_longitude\n \n as \n \n billing_address_longitude\n \n, \n \n \n billing_address_name\n \n as \n \n billing_address_name\n \n, \n \n \n billing_address_phone\n \n as \n \n billing_address_phone\n \n, \n \n \n billing_address_province\n \n as \n \n billing_address_province\n \n, \n \n \n billing_address_province_code\n \n as \n \n billing_address_province_code\n \n, \n \n \n billing_address_zip\n \n as \n \n billing_address_zip\n \n, \n \n \n browser_ip\n \n as \n \n browser_ip\n \n, \n \n \n buyer_accepts_marketing\n \n as has_buyer_accepted_marketing , \n cast(null as TEXT) as \n \n total_shipping_price_set\n \n , \n \n \n shipping_address_address_1\n \n as \n \n shipping_address_address_1\n \n, \n \n \n shipping_address_address_2\n \n as \n \n shipping_address_address_2\n \n, \n \n \n shipping_address_city\n \n as \n \n shipping_address_city\n \n, \n \n \n shipping_address_company\n \n as \n \n shipping_address_company\n \n, \n \n \n shipping_address_country\n \n as \n \n shipping_address_country\n \n, \n \n \n shipping_address_country_code\n \n as \n \n shipping_address_country_code\n \n, \n \n \n shipping_address_first_name\n \n as \n \n shipping_address_first_name\n \n, \n \n \n shipping_address_last_name\n \n as \n \n shipping_address_last_name\n \n, \n \n \n shipping_address_latitude\n \n as \n \n shipping_address_latitude\n \n, \n \n \n shipping_address_longitude\n \n as \n \n shipping_address_longitude\n \n, \n \n \n shipping_address_name\n \n as \n \n shipping_address_name\n \n, \n \n \n shipping_address_phone\n \n as \n \n shipping_address_phone\n \n, \n \n \n shipping_address_province\n \n as \n \n shipping_address_province\n \n, \n \n \n shipping_address_province_code\n \n as \n \n shipping_address_province_code\n \n, \n \n \n shipping_address_zip\n \n as \n \n shipping_address_zip\n \n, \n \n \n test\n \n as is_test_order , \n \n \n token\n \n as \n \n token\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\""}, "model.shopify_source.stg_shopify__transaction": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_transaction_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__transaction"], "unique_id": "model.shopify_source.stg_shopify__transaction", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__transaction_tmp') }}\n\n),\n\nrenamed as (\n\n select\n\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__transaction_tmp')),\n staging_columns=get_transaction_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('transaction_pass_through_columns') %}\n ,\n {{ var('transaction_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n where not test\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__transaction.sql", "original_file_path": "models/stg_shopify__transaction.sql", "name": "stg_shopify__transaction", "alias": "stg_shopify__transaction", "checksum": {"name": "sha256", "checksum": "b837eb0c1661d2817ccb6a1c3123e7d146dbbd9a63ea1fe0ad52ba8a1742ecbe"}, "tags": [], "refs": [["stg_shopify__transaction_tmp"], ["stg_shopify__transaction_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__transaction.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.047869, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__transaction_tmp\"\n\n),\n\nrenamed as (\n\n select\n\n \n \n \n id\n \n as transaction_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n created_at\n \n as created_timestamp , \n \n \n processed_at\n \n as processed_timestamp , \n \n \n device_id\n \n as \n \n device_id\n \n, \n \n \n gateway\n \n as \n \n gateway\n \n, \n \n \n source_name\n \n as \n \n source_name\n \n, \n \n \n message\n \n as \n \n message\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n parent_id\n \n as \n \n parent_id\n \n, \n \n \n payment_avs_result_code\n \n as \n \n payment_avs_result_code\n \n, \n \n \n payment_credit_card_bin\n \n as \n \n payment_credit_card_bin\n \n, \n \n \n payment_cvv_result_code\n \n as \n \n payment_cvv_result_code\n \n, \n \n \n payment_credit_card_number\n \n as \n \n payment_credit_card_number\n \n, \n \n \n payment_credit_card_company\n \n as \n \n payment_credit_card_company\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n receipt\n \n as \n \n receipt\n \n, \n \n \n currency_exchange_id\n \n as \n \n currency_exchange_id\n \n, \n \n \n currency_exchange_adjustment\n \n as \n \n currency_exchange_adjustment\n \n, \n \n \n currency_exchange_original_amount\n \n as \n \n currency_exchange_original_amount\n \n, \n \n \n currency_exchange_final_amount\n \n as \n \n currency_exchange_final_amount\n \n, \n \n \n currency_exchange_currency\n \n as \n \n currency_exchange_currency\n \n, \n \n \n error_code\n \n as \n \n error_code\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n test\n \n as \n \n test\n \n, \n \n \n user_id\n \n as \n \n user_id\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n \n \n \"authorization\"\n \n \n \n as authorization \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n where not test\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__transaction\""}, "model.shopify_source.stg_shopify__order_adjustment": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_adjustment_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_adjustment"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\nwith source as (\n\n select * \n from {{ ref('stg_shopify__order_adjustment_tmp') }}\n\n),\n\nrenamed as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_adjustment_tmp')),\n staging_columns=get_order_adjustment_columns()\n )\n }}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n \n from source\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_adjustment.sql", "original_file_path": "models/stg_shopify__order_adjustment.sql", "name": "stg_shopify__order_adjustment", "alias": "stg_shopify__order_adjustment", "checksum": {"name": "sha256", "checksum": "b494a4c88cf235fb0b11c020d004bcf0904e9d1ae235144330d3d24b37ad4318"}, "tags": [], "refs": [["stg_shopify__order_adjustment_tmp"], ["stg_shopify__order_adjustment_tmp"]], "sources": [], "metrics": [], "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"order_adjustment_id": {"name": "order_adjustment_id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_adjustment.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1671482451.0514162, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_adjustment_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n id\n \n as order_adjustment_id , \n \n \n order_id\n \n as \n \n order_id\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n amount\n \n as \n \n amount\n \n, \n \n \n tax_amount\n \n as \n \n tax_amount\n \n, \n \n \n kind\n \n as \n \n kind\n \n, \n \n \n reason\n \n as \n \n reason\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n\n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n \n from source\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_adjustment\""}, "model.shopify_source.stg_shopify__customer": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_customer_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__customer"], "unique_id": "model.shopify_source.stg_shopify__customer", "raw_code": "with source as (\n\n select * from {{ ref('stg_shopify__customer_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__customer_tmp')),\n staging_columns=get_customer_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('customer_pass_through_columns') %}\n ,\n {{ var('customer_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__customer.sql", "original_file_path": "models/stg_shopify__customer.sql", "name": "stg_shopify__customer", "alias": "stg_shopify__customer", "checksum": {"name": "sha256", "checksum": "e43df3b376bae7b581cfb9514f59c82263bbba83447e9bd440a214e8c2dca709"}, "tags": [], "refs": [["stg_shopify__customer_tmp"], ["stg_shopify__customer_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__customer.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table"}, "created_at": 1671482451.02071, "compiled_code": "with source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__customer_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n accepts_marketing\n \n as has_accepted_marketing , \n \n \n created_at\n \n as created_timestamp , \n \n \n default_address_id\n \n as \n \n default_address_id\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as customer_id , \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n orders_count\n \n as \n \n orders_count\n \n, \n \n \n phone\n \n as \n \n phone\n \n, \n \n \n state\n \n as account_state , \n \n \n tax_exempt\n \n as is_tax_exempt , \n \n \n total_spent\n \n as \n \n total_spent\n \n, \n \n \n updated_at\n \n as updated_timestamp , \n \n \n verified_email\n \n as is_verified_email \n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__customer\""}, "model.shopify_source.stg_shopify__order_line_refund": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.shopify_source.get_order_line_refund_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "stg_shopify__order_line_refund"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\nwith source as (\n\n select * from {{ ref('stg_shopify__order_line_refund_tmp') }}\n\n),\n\nrenamed as (\n\n select\n \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_shopify__order_line_refund_tmp')),\n staging_columns=get_order_line_refund_columns()\n )\n }}\n\n --The below script allows for pass through columns.\n {% if var('order_line_refund_pass_through_columns') %}\n ,\n {{ var('order_line_refund_pass_through_columns') | join (\", \")}}\n\n {% endif %}\n\n {{ fivetran_utils.source_relation(\n union_schema_variable='shopify_union_schemas', \n union_database_variable='shopify_union_databases') \n }}\n\n from source\n\n)\n\nselect * from renamed", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "stg_shopify__order_line_refund.sql", "original_file_path": "models/stg_shopify__order_line_refund.sql", "name": "stg_shopify__order_line_refund", "alias": "stg_shopify__order_line_refund", "checksum": {"name": "sha256", "checksum": "0d7b02b07f95694dd5358ec919659f16bdccf708f906546b99f448355b1253cd"}, "tags": [], "refs": [["stg_shopify__order_line_refund_tmp"], ["stg_shopify__order_line_refund_tmp"]], "sources": [], "metrics": [], "description": "Each record represents a line item from an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_refund_id": {"name": "order_line_refund_id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_source://models/stg_shopify.yml", "compiled_path": "target/compiled/shopify_source/models/stg_shopify__order_line_refund.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "table", "enabled": true}, "created_at": 1671482451.022367, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\nwith source as (\n\n select * from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund_tmp\"\n\n),\n\nrenamed as (\n\n select\n \n \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n id\n \n as order_line_refund_id , \n \n \n location_id\n \n as \n \n location_id\n \n, \n \n \n order_line_id\n \n as \n \n order_line_id\n \n, \n cast(null as numeric(28,6)) as \n \n subtotal\n \n , \n cast(null as numeric(28,6)) as \n \n total_tax\n \n , \n \n \n quantity\n \n as \n \n quantity\n \n, \n \n \n refund_id\n \n as \n \n refund_id\n \n, \n \n \n restock_type\n \n as \n \n restock_type\n \n\n\n\n\n --The below script allows for pass through columns.\n \n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from source\n\n)\n\nselect * from renamed", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\""}, "model.shopify_source.stg_shopify__customer_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__customer_tmp"], "unique_id": "model.shopify_source.stg_shopify__customer_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='customer', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='customer_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__customer_tmp.sql", "original_file_path": "models/tmp/stg_shopify__customer_tmp.sql", "name": "stg_shopify__customer_tmp", "alias": "stg_shopify__customer_tmp", "checksum": {"name": "sha256", "checksum": "1f896e84164292f48db1c4eddfd6b3afef9ce4661ad2ab160c8721c8e620026c"}, "tags": [], "refs": [["shopify_customer_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__customer_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.6266298, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_customer_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__customer_tmp\""}, "model.shopify_source.stg_shopify__order_line_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order_line', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_tmp.sql", "name": "stg_shopify__order_line_tmp", "alias": "stg_shopify__order_line_tmp", "checksum": {"name": "sha256", "checksum": "778359b2c17590b95d7b5709bfdd28b50d323b905e4277c74203416f08ee458e"}, "tags": [], "refs": [["shopify_order_line_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.639316, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_line_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_tmp\""}, "model.shopify_source.stg_shopify__refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__refund_tmp", "raw_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__refund_tmp.sql", "name": "stg_shopify__refund_tmp", "alias": "stg_shopify__refund_tmp", "checksum": {"name": "sha256", "checksum": "2bcf1d64f126acc4d271984df2b6332286bf10a7345962f7037c391d8ecdbdbd"}, "tags": [], "refs": [["shopify_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1671482450.6436229, "compiled_code": "--To disable this model, set the shopify__using_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund_tmp\""}, "model.shopify_source.stg_shopify__product_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_tmp.sql", "name": "stg_shopify__product_tmp", "alias": "stg_shopify__product_tmp", "checksum": {"name": "sha256", "checksum": "4c88fa0dabe17fa99b7509af7b3518c844df1747e28e6c7ac4f0a8262424e91a"}, "tags": [], "refs": [["shopify_product_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.647947, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_product_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_tmp\""}, "model.shopify_source.stg_shopify__order_adjustment_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_adjustment_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp", "raw_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_adjustment', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_adjustment', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_adjustment_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_adjustment_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_adjustment_tmp.sql", "name": "stg_shopify__order_adjustment_tmp", "alias": "stg_shopify__order_adjustment_tmp", "checksum": {"name": "sha256", "checksum": "e3d5e7ba5a680437560ef21796b014718c45d20c52fbf4ac950d8eb687348d96"}, "tags": [], "refs": [["shopify_order_adjustment_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_adjustment_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1671482450.6519418, "compiled_code": "--To disable this model, set the shopify__using_order_adjustment variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_adjustment_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_adjustment_tmp\""}, "model.shopify_source.stg_shopify__order_line_refund_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_line_refund_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp", "raw_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n{{ config(enabled=var('shopify__using_order_line_refund', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='order_line_refund', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_line_refund_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_line_refund_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_line_refund_tmp.sql", "name": "stg_shopify__order_line_refund_tmp", "alias": "stg_shopify__order_line_refund_tmp", "checksum": {"name": "sha256", "checksum": "33bb981405f33c32bbe9c2107a9ba93fd70b9e59578befc3c9e7f78a68c27eb2"}, "tags": [], "refs": [["shopify_order_line_refund_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_line_refund_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view", "enabled": true}, "created_at": 1671482450.657105, "compiled_code": "--To disable this model, set the shopify__using_order_line_refund variable within your dbt_project.yml file to False.\n\n\n\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_line_refund_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund_tmp\""}, "model.shopify_source.stg_shopify__transaction_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__transaction_tmp"], "unique_id": "model.shopify_source.stg_shopify__transaction_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='transaction', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='transaction_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__transaction_tmp.sql", "original_file_path": "models/tmp/stg_shopify__transaction_tmp.sql", "name": "stg_shopify__transaction_tmp", "alias": "stg_shopify__transaction_tmp", "checksum": {"name": "sha256", "checksum": "9a4cf0c7a2495c01fd10f0d88655aaffe63ef8b3cc94883e10507b034285f978"}, "tags": [], "refs": [["shopify_transaction_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__transaction_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.661515, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_transaction_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__transaction_tmp\""}, "model.shopify_source.stg_shopify__product_variant_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__product_variant_tmp"], "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='product_variant', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='product_variant_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__product_variant_tmp.sql", "original_file_path": "models/tmp/stg_shopify__product_variant_tmp.sql", "name": "stg_shopify__product_variant_tmp", "alias": "stg_shopify__product_variant_tmp", "checksum": {"name": "sha256", "checksum": "cbb9a84c332f17d90ad953536a449714fac6f77f871da604d43ffb846f6d5621"}, "tags": [], "refs": [["shopify_product_variant_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__product_variant_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.665513, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_product_variant_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_variant_tmp\""}, "model.shopify_source.stg_shopify__order_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"]}, "config": {"enabled": true, "alias": null, "schema": "stg_shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_shopify", "fqn": ["shopify_source", "tmp", "stg_shopify__order_tmp"], "unique_id": "model.shopify_source.stg_shopify__order_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='order', \n database_variable='shopify_database', \n schema_variable='shopify_schema', \n default_database=target.database,\n default_schema='shopify',\n default_variable='order_source',\n union_schema_variable='shopify_union_schemas',\n union_database_variable='shopify_union_databases'\n )\n}}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "tmp/stg_shopify__order_tmp.sql", "original_file_path": "models/tmp/stg_shopify__order_tmp.sql", "name": "stg_shopify__order_tmp", "alias": "stg_shopify__order_tmp", "checksum": {"name": "sha256", "checksum": "f4fd2563557b13c2b54531a7fa9995e496aa1b39432d729a010ddcb7e10001ae"}, "tags": [], "refs": [["shopify_order_data"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/tmp/stg_shopify__order_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "stg_shopify", "materialized": "view"}, "created_at": 1671482450.6696079, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"shopify_order_data\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_tmp\""}, "model.klaviyo_source.stg_klaviyo__person": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_person_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.fivetran_utils.fill_pass_through_columns"], "nodes": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__person"], "unique_id": "model.klaviyo_source.stg_klaviyo__person", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__person_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__person_tmp')),\n staging_columns=get_person_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n {{ fivetran_utils.fill_pass_through_columns('klaviyo__person_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__person.sql", "original_file_path": "models/stg_klaviyo__person.sql", "name": "stg_klaviyo__person", "alias": "stg_klaviyo__person", "checksum": {"name": "sha256", "checksum": "0c4d31fb3c257dff6d4c5123f3352ee790db81b766ac4f3be3b1cdb06d19b45f"}, "tags": [], "refs": [["stg_klaviyo__person_tmp"], ["stg_klaviyo__person_tmp"]], "sources": [], "metrics": [], "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__person.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.139092, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n address_1\n \n as \n \n address_1\n \n, \n \n \n address_2\n \n as \n \n address_2\n \n, \n \n \n city\n \n as \n \n city\n \n, \n \n \n country\n \n as \n \n country\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email\n \n as \n \n email\n \n, \n \n \n first_name\n \n as \n \n first_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_name\n \n as \n \n last_name\n \n, \n \n \n latitude\n \n as \n \n latitude\n \n, \n \n \n longitude\n \n as \n \n longitude\n \n, \n \n \n organization\n \n as \n \n organization\n \n, \n \n \n phone_number\n \n as \n \n phone_number\n \n, \n \n \n region\n \n as \n \n region\n \n, \n \n \n timezone\n \n as \n \n timezone\n \n, \n \n \n title\n \n as \n \n title\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n zip\n \n as \n \n zip\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n id as person_id,\n address_1,\n address_2,\n city,\n country,\n zip,\n created as created_at,\n email,\n first_name || ' ' || last_name as full_name,\n latitude,\n longitude,\n organization,\n phone_number,\n region, -- state in USA\n timezone,\n title,\n updated as updated_at,\n source_relation\n \n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\""}, "model.klaviyo_source.stg_klaviyo__campaign": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__campaign"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__campaign_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__campaign_tmp')),\n staging_columns=get_campaign_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__campaign.sql", "original_file_path": "models/stg_klaviyo__campaign.sql", "name": "stg_klaviyo__campaign", "alias": "stg_klaviyo__campaign", "checksum": {"name": "sha256", "checksum": "3bb055bc8484630176011790a666821ae220126184e05eaff411aa44406048e2"}, "tags": [], "refs": [["stg_klaviyo__campaign_tmp"], ["stg_klaviyo__campaign_tmp"]], "sources": [], "metrics": [], "description": "Table capturing email campaigns in Klaviyo.\n", "columns": {"campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__campaign.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.130291, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n campaign_type\n \n as \n \n campaign_type\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n email_template_id\n \n as \n \n email_template_id\n \n, \n \n \n from_email\n \n as \n \n from_email\n \n, \n \n \n from_name\n \n as \n \n from_name\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n is_segmented\n \n as \n \n is_segmented\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n send_time\n \n as \n \n send_time\n \n, \n \n \n sent_at\n \n as \n \n sent_at\n \n, \n \n \n status\n \n as \n \n status\n \n, \n \n \n status_id\n \n as \n \n status_id\n \n, \n \n \n status_label\n \n as \n \n status_label\n \n, \n \n \n subject\n \n as \n \n subject\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select\n campaign_type,\n created as created_at,\n email_template_id,\n from_email,\n from_name,\n id as campaign_id,\n is_segmented,\n name as campaign_name,\n send_time as scheduled_to_send_at,\n sent_at,\n coalesce(status, lower(status_label)) as status,\n status_id,\n subject,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign\""}, "model.klaviyo_source.stg_klaviyo__metric": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_metric_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__metric"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__metric_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__metric_tmp')),\n staging_columns=get_metric_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__metric.sql", "original_file_path": "models/stg_klaviyo__metric.sql", "name": "stg_klaviyo__metric", "alias": "stg_klaviyo__metric", "checksum": {"name": "sha256", "checksum": "d131ba8b5c6b489c12dc687514ef82b359aecaa82175b66d77fa44344b4eb58f"}, "tags": [], "refs": [["stg_klaviyo__metric_tmp"], ["stg_klaviyo__metric_tmp"]], "sources": [], "metrics": [], "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_name": {"name": "metric_name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__metric.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.140418, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n integration_id\n \n as \n \n integration_id\n \n, \n \n \n name\n \n as \n \n name\n \n, \n \n \n updated\n \n as \n \n updated\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as metric_id,\n integration_id,\n name as metric_name,\n updated as updated_at,\n source_relation\n\n from fields\n\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric\""}, "model.klaviyo_source.stg_klaviyo__integration": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_integration_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__integration"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__integration_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__integration_tmp')),\n staging_columns=get_integration_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__integration.sql", "original_file_path": "models/stg_klaviyo__integration.sql", "name": "stg_klaviyo__integration", "alias": "stg_klaviyo__integration", "checksum": {"name": "sha256", "checksum": "cf1d2569260342f615850f5d782fb0e166d1b70ea3a703fb2248d6f457023cf8"}, "tags": [], "refs": [["stg_klaviyo__integration_tmp"], ["stg_klaviyo__integration_tmp"]], "sources": [], "metrics": [], "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__integration.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.135896, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n category\n \n as \n \n category\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 \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n category,\n id as integration_id,\n name as integration_name,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration\""}, "model.klaviyo_source.stg_klaviyo__flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_flow_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__flow"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__flow_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__flow_tmp')),\n staging_columns=get_flow_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n {% if target.type == 'snowflake'%}\n \"TRIGGER\" \n {% else %}\n trigger\n {% endif %}\n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__flow.sql", "original_file_path": "models/stg_klaviyo__flow.sql", "name": "stg_klaviyo__flow", "alias": "stg_klaviyo__flow", "checksum": {"name": "sha256", "checksum": "a74ad01e8fbca823f7ec229f1d0c59171c4a1200e314cb06e0ac75da0bc72792"}, "tags": [], "refs": [["stg_klaviyo__flow_tmp"], ["stg_klaviyo__flow_tmp"]], "sources": [], "metrics": [], "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.134449, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n created\n \n as \n \n created\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 status\n \n as \n \n status\n \n, \n \n \n updated\n \n as \n \n updated\n \n, \n \n \n customer_filter\n \n as \n \n customer_filter\n \n, \n \n \n \n \n \"trigger\"\n \n \n \n as \n \n \n \n \"trigger\"\n \n \n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nfinal as (\n \n select \n created as created_at,\n id as flow_id,\n name as flow_name,\n status,\n \n trigger\n \n as flow_trigger,\n updated as updated_at,\n customer_filter as person_filter,\n source_relation\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow\""}, "model.klaviyo_source.stg_klaviyo__event": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.klaviyo_source.get_event_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp", "macro.fivetran_utils.fill_pass_through_columns", "macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "stg_klaviyo__event"], "unique_id": "model.klaviyo_source.stg_klaviyo__event", "raw_code": "with base as (\n\n select * \n from {{ ref('stg_klaviyo__event_tmp') }}\n\n),\n\nfields as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_klaviyo__event_tmp')),\n staging_columns=get_event_columns()\n )\n }}\n {{ fivetran_utils.source_relation(\n union_schema_variable='klaviyo_union_schemas', \n union_database_variable='klaviyo_union_databases') \n }}\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as {{ dbt.type_timestamp() }} ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n {{ fivetran_utils.fill_pass_through_columns('klaviyo__event_pass_through_columns') }}\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as occurred_on,\n {{ dbt_utils.generate_surrogate_key(['event_id', 'source_relation']) }} as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "stg_klaviyo__event.sql", "original_file_path": "models/stg_klaviyo__event.sql", "name": "stg_klaviyo__event", "alias": "stg_klaviyo__event", "checksum": {"name": "sha256", "checksum": "ac7fe60fc899d46d3cc8bad8279fbcf6bf8560a43d6389c41b7aeab1cb695bb7"}, "tags": [], "refs": [["stg_klaviyo__event_tmp"], ["stg_klaviyo__event_tmp"]], "sources": [], "metrics": [], "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo_source://models/stg_klaviyo.yml", "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo__event.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "stg_klaviyo"}, "created_at": 1671482451.1328452, "compiled_code": "with base as (\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event_tmp\"\n\n),\n\nfields as (\n\n select\n \n \n \n _fivetran_deleted\n \n as \n \n _fivetran_deleted\n \n, \n \n \n _fivetran_synced\n \n as \n \n _fivetran_synced\n \n, \n \n \n _variation\n \n as \n \n _variation\n \n, \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n datetime\n \n as \n \n datetime\n \n, \n \n \n flow_id\n \n as \n \n flow_id\n \n, \n \n \n flow_message_id\n \n as \n \n flow_message_id\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n metric_id\n \n as \n \n metric_id\n \n, \n \n \n person_id\n \n as \n \n person_id\n \n, \n \n \n timestamp\n \n as \n \n timestamp\n \n, \n \n \n type\n \n as \n \n type\n \n, \n \n \n uuid\n \n as \n \n uuid\n \n, \n \n \n property_value\n \n as \n \n property_value\n \n\n\n\n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n from base\n),\n\nrename as (\n \n select \n _variation as variation_id,\n campaign_id,\n cast(timestamp as TIMESTAMP ) as occurred_at,\n flow_id,\n flow_message_id,\n id as event_id,\n metric_id,\n person_id,\n type,\n uuid,\n property_value as numeric_value,\n _fivetran_synced,\n source_relation\n\n \n\n\n\n\n\n from fields\n where not coalesce(_fivetran_deleted, false)\n),\n\nfinal as (\n \n select \n *,\n cast( date_trunc('day', occurred_at) as date) as occurred_on,\n \n \nmd5(cast(coalesce(cast(event_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_event_id\n\n from rename\n\n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event\""}, "model.klaviyo_source.stg_klaviyo__event_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.event"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__event_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='event', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='event_table',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__event_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__event_tmp.sql", "name": "stg_klaviyo__event_tmp", "alias": "stg_klaviyo__event_tmp", "checksum": {"name": "sha256", "checksum": "0aa5096828da6b1f75fb7a93d5f7621f024adb2ef241014a075abae8511fb337"}, "tags": [], "refs": [["event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__event_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.7552829, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"event\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event_tmp\""}, "model.klaviyo_source.stg_klaviyo__metric_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.metric"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__metric_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='metric', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='metric',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__metric_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__metric_tmp.sql", "name": "stg_klaviyo__metric_tmp", "alias": "stg_klaviyo__metric_tmp", "checksum": {"name": "sha256", "checksum": "1f887542c817cae88b22c9632e93da3ae5fa6c02dadc22e8901484b55e4c5f2d"}, "tags": [], "refs": [["metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__metric_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.759913, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"metric\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric_tmp\""}, "model.klaviyo_source.stg_klaviyo__campaign_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.campaign"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__campaign_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='campaign', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='campaign',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__campaign_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__campaign_tmp.sql", "name": "stg_klaviyo__campaign_tmp", "alias": "stg_klaviyo__campaign_tmp", "checksum": {"name": "sha256", "checksum": "f494e0b1c1093180196545a7c05c0f8f7f8ed074e63328057021091c1d776530"}, "tags": [], "refs": [["campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__campaign_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.764263, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"campaign\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign_tmp\""}, "model.klaviyo_source.stg_klaviyo__integration_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.integration"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__integration_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='integration', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='integration',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__integration_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__integration_tmp.sql", "name": "stg_klaviyo__integration_tmp", "alias": "stg_klaviyo__integration_tmp", "checksum": {"name": "sha256", "checksum": "174b16d87563e123fb0d813d3749c31fb80fc08df48143729e28f34bce0a2e04"}, "tags": [], "refs": [["integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__integration_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.768437, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"integration\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration_tmp\""}, "model.klaviyo_source.stg_klaviyo__flow_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.flow"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__flow_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='flow', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='flow',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__flow_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__flow_tmp.sql", "name": "stg_klaviyo__flow_tmp", "alias": "stg_klaviyo__flow_tmp", "checksum": {"name": "sha256", "checksum": "4437a7971622b8cd114313ee2b1a59b992ba862c49f0086851d5d60082617b0c"}, "tags": [], "refs": [["flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__flow_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.7730072, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"flow\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow_tmp\""}, "model.klaviyo_source.stg_klaviyo__person_tmp": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["seed.shopify_holistic_reporting_integration_tests.person"]}, "config": {"enabled": true, "alias": null, "schema": "stg_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_stg_klaviyo", "fqn": ["klaviyo_source", "tmp", "stg_klaviyo__person_tmp"], "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp", "raw_code": "{{\n fivetran_utils.union_data(\n table_identifier='person', \n database_variable='klaviyo_database', \n schema_variable='klaviyo_schema', \n default_database=target.database,\n default_schema='klaviyo',\n default_variable='person',\n union_schema_variable='klaviyo_union_schemas',\n union_database_variable='klaviyo_union_databases'\n )\n}}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "tmp/stg_klaviyo__person_tmp.sql", "original_file_path": "models/tmp/stg_klaviyo__person_tmp.sql", "name": "stg_klaviyo__person_tmp", "alias": "stg_klaviyo__person_tmp", "checksum": {"name": "sha256", "checksum": "ec768db1c8d1d5eb47e967bf23bb95726133d2a298373f757930302de96e2910"}, "tags": [], "refs": [["person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/tmp/stg_klaviyo__person_tmp.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "stg_klaviyo"}, "created_at": 1671482450.7787101, "compiled_code": "\n\n\n\n select * \n from \"postgres\".\"shopify_holistic_reporting_integration_tests\".\"person\"\n\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person_tmp\""}, "model.klaviyo.klaviyo__person_campaign_flow": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "fqn": ["klaviyo", "klaviyo__person_campaign_flow"], "unique_id": "model.klaviyo.klaviyo__person_campaign_flow", "raw_code": "with events as (\n select *\n from {{ ref('klaviyo__events') }}\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=7) }}\n)\n\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__person_campaign_flow.sql", "original_file_path": "models/klaviyo__person_campaign_flow.sql", "name": "klaviyo__person_campaign_flow", "alias": "klaviyo__person_campaign_flow", "checksum": {"name": "sha256", "checksum": "89abb4c1b2f90ada510aba4f45cb935f457c0e0a776a6f761826e5b270bc7817"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "Table that aggregates event metrics to the person-campaign or -flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that organic interactions (someone with null campaign_id/flow_id) are included in this table. \n**Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\n", "columns": {"person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who interacted with the flow/message.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person. In other words, the first event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person. In other words, the last event trigger attributed to the campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__person_campaign_flow.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1671482451.191674, "compiled_code": "with events as (\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\n),\n\npivot_out_events as (\n \n select \n person_id,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then 1 else 0 end) \n as count_cancelled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'fulfilled order' then 1 else 0 end) \n as count_fulfilled_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'bounced email' then 1 else 0 end) \n as count_bounced_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'dropped email' then 1 else 0 end) \n as count_dropped_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to list' then 1 else 0 end) \n as count_subscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed to list' then 1 else 0 end) \n as count_unsubscribed_to_list -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'updated email preferences' then 1 else 0 end) \n as count_updated_email_preferences -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'subscribed to back in stock' then 1 else 0 end) \n as count_subscribed_to_back_in_stock -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'merged profile' then 1 else 0 end) \n as count_merged_profile -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'consented to receive sms' then 1 else 0 end) \n as count_consented_to_receive_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'failed to deliver sms' then 1 else 0 end) \n as count_failed_to_deliver_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7\n)\n\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__person_campaign_flow\""}, "model.klaviyo.klaviyo__persons": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "fqn": ["klaviyo", "klaviyo__persons"], "unique_id": "model.klaviyo.klaviyo__persons", "raw_code": "with person as (\n\n select *\n from {{ var('person') }}\n),\n\nperson_metrics as (\n\n select *\n from {{ ref('int_klaviyo__person_metrics') }}\n),\n\nperson_join as (\n\n select\n person.*,\n {{ dbt_utils.star(from=ref('int_klaviyo__person_metrics'), except=[\"person_id\", \"source_relation\"]) }}\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__persons.sql", "original_file_path": "models/klaviyo__persons.sql", "name": "klaviyo__persons", "alias": "klaviyo__persons", "checksum": {"name": "sha256", "checksum": "4228e8c8280040f57997ecd7d0cd1c726cee6789721533903c2f75ad6cefc473"}, "tags": [], "refs": [["stg_klaviyo__person"], ["int_klaviyo__person_metrics"], ["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "Table of unique person profiles, enhanced with event, campaign, flow, and revenue metrics. \n**Counts** of instances of triggered events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__persons.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1671482451.201813, "compiled_code": "with person as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\nperson_metrics as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__person_metrics\"\n),\n\nperson_join as (\n\n select\n person.*,\n \"count_total_campaigns\",\n \"count_total_flows\",\n \"first_event_at\",\n \"last_event_at\",\n \"first_campaign_touch_at\",\n \"last_campaign_touch_at\",\n \"first_flow_touch_at\",\n \"last_flow_touch_at\",\n \"total_sum_revenue_refunded_order\",\n \"organic_sum_revenue_refunded_order\",\n \"total_sum_revenue_placed_order\",\n \"organic_sum_revenue_placed_order\",\n \"total_sum_revenue_ordered_product\",\n \"organic_sum_revenue_ordered_product\",\n \"total_sum_revenue_checkout_started\",\n \"organic_sum_revenue_checkout_started\",\n \"total_sum_revenue_cancelled_order\",\n \"organic_sum_revenue_cancelled_order\",\n \"total_count_active_on_site\",\n \"total_count_viewed_product\",\n \"total_count_ordered_product\",\n \"total_count_placed_order\",\n \"total_count_refunded_order\",\n \"total_count_cancelled_order\",\n \"total_count_fulfilled_order\",\n \"total_count_received_email\",\n \"total_count_clicked_email\",\n \"total_count_opened_email\",\n \"total_count_bounced_email\",\n \"total_count_marked_email_as_spam\",\n \"total_count_dropped_email\",\n \"total_count_subscribed_to_list\",\n \"total_count_unsubscribed_to_list\",\n \"total_count_unsubscribed\",\n \"total_count_updated_email_preferences\",\n \"total_count_subscribed_to_back_in_stock\",\n \"total_count_merged_profile\",\n \"total_count_received_sms\",\n \"total_count_clicked_sms\",\n \"total_count_consented_to_receive_sms\",\n \"total_count_sent_sms\",\n \"total_count_unsubscribed_from_sms\",\n \"total_count_failed_to_deliver_sms\"\n\n from person\n left join person_metrics on (\n person.person_id = person_metrics.person_id\n and person.source_relation = person_metrics.source_relation\n )\n\n)\n\nselect *\nfrom person_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\""}, "model.klaviyo.klaviyo__flows": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "fqn": ["klaviyo", "klaviyo__flows"], "unique_id": "model.klaviyo.klaviyo__flows", "raw_code": "with flow as (\n\n select *\n from {{ var('flow') }}\n),\n\nflow_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\nflow_join as (\n \n {% set exclude_fields = ['last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n flow.*, -- has flow_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['flow_id','variation_id']) }} as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__flows.sql", "original_file_path": "models/klaviyo__flows.sql", "name": "klaviyo__flows", "alias": "klaviyo__flows", "checksum": {"name": "sha256", "checksum": "8817e15a1759539ac4c9093b2f7ac78c43444e5dd502a51b0372e74eecc59a85"}, "tags": [], "refs": [["stg_klaviyo__flow"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique flow versions. A flow with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"flow_variation_key": {"name": "flow_variation_key", "description": "Unique key hashed on the flow and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_trigger": {"name": "flow_trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_filter": {"name": "person_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__flows.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1671482451.197429, "compiled_code": "with flow as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nflow_metrics as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\nflow_join as (\n \n \n\n select\n flow.*, -- has flow_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from flow\n left join flow_metrics on (\n flow.flow_id = flow_metrics.last_touch_flow_id\n and\n flow.source_relation = flow_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(flow_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as flow_variation_key\n\n from flow_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__flows\""}, "model.klaviyo.klaviyo__campaigns": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "fqn": ["klaviyo", "klaviyo__campaigns"], "unique_id": "model.klaviyo.klaviyo__campaigns", "raw_code": "with campaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\ncampaign_metrics as (\n\n select *\n from {{ ref('int_klaviyo__campaign_flow_metrics') }}\n),\n\ncampaign_join as (\n \n {% set exclude_fields = [ 'last_touch_campaign_id', 'last_touch_flow_id', 'source_relation'] %}\n\n select\n campaign.*, -- has campaign_id and source_relation\n {{ dbt_utils.star(from=ref('int_klaviyo__campaign_flow_metrics'), except=exclude_fields) }}\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n {{ dbt_utils.generate_surrogate_key(['campaign_id','variation_id']) }} as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__campaigns.sql", "original_file_path": "models/klaviyo__campaigns.sql", "name": "klaviyo__campaigns", "alias": "klaviyo__campaigns", "checksum": {"name": "sha256", "checksum": "5339678a1118c92336a1f5f30e28a6d5025c4a316daaeea450636ec0d9ffd7ff"}, "tags": [], "refs": [["stg_klaviyo__campaign"], ["int_klaviyo__campaign_flow_metrics"], ["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "Table of unique campaign versions. A campaign with 2 variations will have 2 distinct rows. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"campaign_variation_key": {"name": "campaign_variation_key", "description": "Unique key hashed on the campaign and variation IDs.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "scheduled_to_send_at": {"name": "scheduled_to_send_at", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__campaigns.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "klaviyo"}, "created_at": 1671482451.1951702, "compiled_code": "with campaign as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\ncampaign_metrics as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n),\n\ncampaign_join as (\n \n \n\n select\n campaign.*, -- has campaign_id and source_relation\n \"variation_id\",\n \"total_count_unique_people\",\n \"first_event_at\",\n \"last_event_at\",\n \"sum_revenue_refunded_order\",\n \"sum_revenue_placed_order\",\n \"sum_revenue_ordered_product\",\n \"sum_revenue_checkout_started\",\n \"sum_revenue_cancelled_order\",\n \"count_active_on_site\",\n \"unique_count_active_on_site\",\n \"count_viewed_product\",\n \"unique_count_viewed_product\",\n \"count_ordered_product\",\n \"unique_count_ordered_product\",\n \"count_placed_order\",\n \"unique_count_placed_order\",\n \"count_refunded_order\",\n \"unique_count_refunded_order\",\n \"count_cancelled_order\",\n \"unique_count_cancelled_order\",\n \"count_fulfilled_order\",\n \"unique_count_fulfilled_order\",\n \"count_received_email\",\n \"unique_count_received_email\",\n \"count_clicked_email\",\n \"unique_count_clicked_email\",\n \"count_opened_email\",\n \"unique_count_opened_email\",\n \"count_bounced_email\",\n \"unique_count_bounced_email\",\n \"count_marked_email_as_spam\",\n \"unique_count_marked_email_as_spam\",\n \"count_dropped_email\",\n \"unique_count_dropped_email\",\n \"count_subscribed_to_list\",\n \"unique_count_subscribed_to_list\",\n \"count_unsubscribed_to_list\",\n \"unique_count_unsubscribed_to_list\",\n \"count_unsubscribed\",\n \"unique_count_unsubscribed\",\n \"count_updated_email_preferences\",\n \"unique_count_updated_email_preferences\",\n \"count_subscribed_to_back_in_stock\",\n \"unique_count_subscribed_to_back_in_stock\",\n \"count_merged_profile\",\n \"unique_count_merged_profile\",\n \"count_received_sms\",\n \"unique_count_received_sms\",\n \"count_clicked_sms\",\n \"unique_count_clicked_sms\",\n \"count_consented_to_receive_sms\",\n \"unique_count_consented_to_receive_sms\",\n \"count_sent_sms\",\n \"unique_count_sent_sms\",\n \"count_unsubscribed_from_sms\",\n \"unique_count_unsubscribed_from_sms\",\n \"count_failed_to_deliver_sms\",\n \"unique_count_failed_to_deliver_sms\"\n\n from campaign\n left join campaign_metrics on (\n campaign.campaign_id = campaign_metrics.last_touch_campaign_id\n and\n campaign.source_relation = campaign_metrics.source_relation\n )\n),\n\nfinal as (\n\n select \n *,\n \n \nmd5(cast(coalesce(cast(campaign_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(variation_id as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as campaign_variation_key\n\n from campaign_join\n)\n\nselect *\nfrom final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__campaigns\""}, "model.klaviyo.klaviyo__events": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt_utils.star", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": null, "schema": "klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_klaviyo", "fqn": ["klaviyo", "klaviyo__events"], "unique_id": "model.klaviyo.klaviyo__events", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('snowflake', 'postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from {{ ref('int_klaviyo__event_attribution') }}\n\n {% if is_incremental() %}\n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n {% endif %}\n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n {% set exclude_fields = ['touch_session', 'last_touch_id', 'session_start_at', 'session_event_type', 'type', 'session_touch_type'] %}\n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n {{ dbt_utils.star(from=ref('int_klaviyo__event_attribution'), except=exclude_fields) }},\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from {{ var('campaign') }}\n),\n\nflow as (\n\n select *\n from {{ var('flow') }}\n),\n\nperson as (\n\n select *\n from {{ var('person') }}\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from {{ var('metric') }}\n),\n\nintegration as (\n\n select *\n from {{ var('integration') }}\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "klaviyo__events.sql", "original_file_path": "models/klaviyo__events.sql", "name": "klaviyo__events", "alias": "klaviyo__events", "checksum": {"name": "sha256", "checksum": "b58f0fa005e289d64b3588e298df678566c7b8921c3e97b4612f3339899292ba"}, "tags": [], "refs": [["int_klaviyo__event_attribution"], ["int_klaviyo__event_attribution"], ["stg_klaviyo__campaign"], ["stg_klaviyo__flow"], ["stg_klaviyo__person"], ["stg_klaviyo__metric"], ["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "Table of Klaviyo events, enriched with attribution data (see `int_klaviyo__event_attribution` for details), and information regarding the event's associated user, flow, campaign, and platform/integration. \nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_at": {"name": "last_touch_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This will be null if the event is not attributed to any flow or campaign. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms). This will be null if the event is not attributed to any flow or campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_city": {"name": "person_city", "description": "City that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_country": {"name": "person_country", "description": "Country that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_region": {"name": "person_region", "description": "Region or state that the person who triggered this event lives in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_email": {"name": "person_email", "description": "The email address and the unique identifier for the person who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_timezone": {"name": "person_timezone", "description": "Timezone that the person who triggered this event is situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_name": {"name": "integration_name", "description": "Name of the platform that triggered the event (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_category": {"name": "integration_category", "description": "Use-case category of the platform that sent the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/klaviyo__events.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1671482451.1899252, "compiled_code": "\n-- ^ the incremental strategy is split into delete+insert for snowflake since there is a bit of\n-- overlap in transformed data blocks for incremental runs (we look back an extra hour, see lines 23 - 30)\n-- this configuration solution was taken from https://docs.getdbt.com/reference/resource-configs/snowflake-configs#merge-behavior-incremental-models\n\nwith events as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__event_attribution\"\n\n \n\n -- most events (from all kinds of integrations) at least once every hour\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n \n),\n\nevent_fields as (\n\n -- excluding some fields to rename them and/or make them null if needed\n \n -- as of the patch release of dbt-utils v0.7.3, the snowflake uppercasing is not needed anymore so we have deleted the snowflake conditional in the exclusion\n\n select \n \"variation_id\",\n \"campaign_id\",\n \"occurred_at\",\n \"flow_id\",\n \"flow_message_id\",\n \"event_id\",\n \"metric_id\",\n \"person_id\",\n \"uuid\",\n \"numeric_value\",\n \"_fivetran_synced\",\n \"source_relation\",\n \"occurred_on\",\n \"unique_event_id\",\n \"touch_id\",\n \"touch_type\",\n\n type, -- need to pull this out because it gets removed by dbt_utils.star, due to being a substring of 'session_event_type' and 'session_touch_type'\n\n -- split out campaign and flow IDs\n case \n when session_touch_type = 'campaign' then last_touch_id \n else null end as last_touch_campaign_id,\n case \n when session_touch_type = 'flow' then last_touch_id \n else null end as last_touch_flow_id,\n\n -- only make these non-null if the event indeed qualified for attribution\n case \n when last_touch_id is not null then session_start_at \n else null end as last_touch_at,\n case \n when last_touch_id is not null then session_event_type \n else null end as last_touch_event_type,\n case \n when last_touch_id is not null then session_touch_type \n else null end as last_touch_type -- flow vs campaign\n\n \n from events\n),\n\ncampaign as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign\"\n),\n\nflow as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow\"\n),\n\nperson as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\n),\n\n-- just pulling this to join with INTEGRATION\nmetric as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric\"\n),\n\nintegration as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration\"\n),\n\njoin_fields as (\n\n select\n event_fields.*,\n campaign.campaign_name,\n campaign.campaign_type,\n campaign.subject as campaign_subject_line,\n flow.flow_name, \n person.city as person_city,\n person.country as person_country,\n person.region as person_region,\n person.email as person_email,\n person.timezone as person_timezone,\n integration.integration_name,\n integration.category as integration_category\n\n from event_fields\n left join campaign on (\n event_fields.last_touch_campaign_id = campaign.campaign_id\n and\n event_fields.source_relation = campaign.source_relation\n )\n left join flow on (\n event_fields.last_touch_flow_id = flow.flow_id\n and\n event_fields.source_relation = flow.source_relation \n )\n left join person on (\n event_fields.person_id = person.person_id\n and\n event_fields.source_relation = person.source_relation\n )\n left join metric on (\n event_fields.metric_id = metric.metric_id\n and\n event_fields.source_relation = metric.source_relation\n )\n left join integration on (\n metric.integration_id = integration.integration_id\n and\n metric.source_relation = integration.source_relation\n )\n)\n\nselect * from join_fields", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\""}, "model.klaviyo.int_klaviyo__campaign_flow_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__campaign_flow_metrics"], "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any person-level metrics to the flow/campaign level\n , sum( {{ col.name }} ) as {{ col.name }}\n\n {% if 'sum_revenue' not in col.name|lower %} -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when {{ col.name }} > 0 then 1 else 0 end) as {{ 'unique_' ~ col.name }}\n\n {% endif %}\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__campaign_flow_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "name": "int_klaviyo__campaign_flow_metrics", "alias": "int_klaviyo__campaign_flow_metrics", "checksum": {"name": "sha256", "checksum": "05f2223e2d8ab2cbcb57045b3008aee2e9c74f1803cb5e3b658b8b92b7b22e9d"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the campaign or flow AND variation grain. A campaign with A/B versions will have 2 records. **Counts** of the unique users and instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_`, `unique_count_`, and `sum_revenue_`.\n", "columns": {"last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_count_unique_people": {"name": "total_count_unique_people", "description": "The count of the distinct people that have interacted with this campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first ever interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the most recent interaction between this campaign/flow and a person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__campaign_flow_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1671482451.230996, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\n-- aggregating to the campaign/flow - variation level. so a flow with A/B versions will have 2 rows\nagg_metrics as (\n\n select\n last_touch_campaign_id,\n last_touch_flow_id,\n variation_id,\n source_relation,\n count(distinct person_id) as total_count_unique_people,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_refunded_order ) as sum_revenue_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_placed_order ) as sum_revenue_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_ordered_product ) as sum_revenue_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_checkout_started ) as sum_revenue_checkout_started\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( sum_revenue_cancelled_order ) as sum_revenue_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_active_on_site ) as count_active_on_site\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_active_on_site > 0 then 1 else 0 end) as unique_count_active_on_site\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_viewed_product ) as count_viewed_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_viewed_product > 0 then 1 else 0 end) as unique_count_viewed_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_ordered_product ) as count_ordered_product\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_ordered_product > 0 then 1 else 0 end) as unique_count_ordered_product\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_placed_order ) as count_placed_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_placed_order > 0 then 1 else 0 end) as unique_count_placed_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_refunded_order ) as count_refunded_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_refunded_order > 0 then 1 else 0 end) as unique_count_refunded_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_cancelled_order ) as count_cancelled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_cancelled_order > 0 then 1 else 0 end) as unique_count_cancelled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_fulfilled_order ) as count_fulfilled_order\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_fulfilled_order > 0 then 1 else 0 end) as unique_count_fulfilled_order\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_email ) as count_received_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_email > 0 then 1 else 0 end) as unique_count_received_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_email ) as count_clicked_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_email > 0 then 1 else 0 end) as unique_count_clicked_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_opened_email ) as count_opened_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_opened_email > 0 then 1 else 0 end) as unique_count_opened_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_bounced_email ) as count_bounced_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_bounced_email > 0 then 1 else 0 end) as unique_count_bounced_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_marked_email_as_spam ) as count_marked_email_as_spam\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_marked_email_as_spam > 0 then 1 else 0 end) as unique_count_marked_email_as_spam\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_dropped_email ) as count_dropped_email\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_dropped_email > 0 then 1 else 0 end) as unique_count_dropped_email\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_list ) as count_subscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_list > 0 then 1 else 0 end) as unique_count_subscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_to_list ) as count_unsubscribed_to_list\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_to_list > 0 then 1 else 0 end) as unique_count_unsubscribed_to_list\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed ) as count_unsubscribed\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed > 0 then 1 else 0 end) as unique_count_unsubscribed\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_updated_email_preferences ) as count_updated_email_preferences\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_updated_email_preferences > 0 then 1 else 0 end) as unique_count_updated_email_preferences\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_subscribed_to_back_in_stock ) as count_subscribed_to_back_in_stock\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_subscribed_to_back_in_stock > 0 then 1 else 0 end) as unique_count_subscribed_to_back_in_stock\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_merged_profile ) as count_merged_profile\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_merged_profile > 0 then 1 else 0 end) as unique_count_merged_profile\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_received_sms ) as count_received_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_received_sms > 0 then 1 else 0 end) as unique_count_received_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_clicked_sms ) as count_clicked_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_clicked_sms > 0 then 1 else 0 end) as unique_count_clicked_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_consented_to_receive_sms ) as count_consented_to_receive_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_consented_to_receive_sms > 0 then 1 else 0 end) as unique_count_consented_to_receive_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_sent_sms ) as count_sent_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_sent_sms > 0 then 1 else 0 end) as unique_count_sent_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_unsubscribed_from_sms ) as count_unsubscribed_from_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_unsubscribed_from_sms > 0 then 1 else 0 end) as unique_count_unsubscribed_from_sms\n\n \n \n -- sum up any person-level metrics to the flow/campaign level\n , sum( count_failed_to_deliver_sms ) as count_failed_to_deliver_sms\n\n -- only look at 'count' metrics for unique people counts\n -- get unique number of people who did each kind of event\n -- each record in person_campaign_flow is at the person-campaign/flow-variation level, \n -- so we can just sum up 0s and 1s to get totals at the campaign/flow-variation grain.\n , sum(case when count_failed_to_deliver_sms > 0 then 1 else 0 end) as unique_count_failed_to_deliver_sms\n\n \n from person_campaign_flow\n group by 1,2,3,4\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\""}, "model.klaviyo.int_klaviyo__person_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__person_metrics"], "unique_id": "model.klaviyo.int_klaviyo__person_metrics", "raw_code": "with person_campaign_flow as (\n\n select *\n from {{ ref('klaviyo__person_campaign_flow') }}\n),\n\n{%- set pcf_columns = adapter.get_columns_in_relation(ref('klaviyo__person_campaign_flow')) %}\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n {% for col in pcf_columns if col.name|lower not in ['last_touch_campaign_id', 'person_id', 'last_touch_flow_id', 'source_relation',\n 'campaign_name', 'flow_name','variation_id', 'first_event_at', 'last_event_at'] %}\n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( {{ col.name }} ) as {{ 'total_' ~ col.name }}\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n {% if 'sum_revenue' in col.name|lower %}\n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then {{ col.name }} else 0 end ) as {{ 'organic_' ~ col.name }}\n {% endif %}\n\n {% endfor -%}\n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__person_metrics.sql", "original_file_path": "models/intermediate/int_klaviyo__person_metrics.sql", "name": "int_klaviyo__person_metrics", "alias": "int_klaviyo__person_metrics", "checksum": {"name": "sha256", "checksum": "a17b4d3bfd7f6a19bc40dc8199f22c30594994645f31cc2bd72280e8ac429259"}, "tags": [], "refs": [["klaviyo__person_campaign_flow"], ["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "Table that draws from the `klaviyo__person_campaign_flow` model to aggregate event metrics to the person grain. \n**Counts** of instances of the events and **sums** of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics`variables, respectively. See the dbt_project.yml file for the default metrics used. \nThese columns will be prefixed with `total_count_`, `total_sum_revenue_` (organic + attributed), and `organic_sum_revenue_` (not attributed to a campaign or flow). \n", "columns": {"person_id": {"name": "person_id", "description": "Unique ID of the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__person_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "int_klaviyo"}, "created_at": 1671482451.232957, "compiled_code": "with person_campaign_flow as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__person_campaign_flow\"\n),\n\nagg_metrics as (\n\n select\n person_id,\n source_relation,\n count(distinct last_touch_campaign_id) as count_total_campaigns,\n count(distinct last_touch_flow_id) as count_total_flows,\n min(first_event_at) as first_event_at, -- first ever event occurred at\n max(last_event_at) as last_event_at, -- last ever event occurred at\n min(distinct case when last_touch_campaign_id is not null then first_event_at end) as first_campaign_touch_at,\n max(distinct case when last_touch_campaign_id is not null then last_event_at end) as last_campaign_touch_at,\n min(distinct case when last_touch_flow_id is not null then first_event_at end) as first_flow_touch_at,\n max(distinct case when last_touch_flow_id is not null then last_event_at end) as last_flow_touch_at\n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_refunded_order ) as total_sum_revenue_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_refunded_order else 0 end ) as organic_sum_revenue_refunded_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_placed_order ) as total_sum_revenue_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_placed_order else 0 end ) as organic_sum_revenue_placed_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_ordered_product ) as total_sum_revenue_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_ordered_product else 0 end ) as organic_sum_revenue_ordered_product\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_checkout_started ) as total_sum_revenue_checkout_started\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_checkout_started else 0 end ) as organic_sum_revenue_checkout_started\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( sum_revenue_cancelled_order ) as total_sum_revenue_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n , sum( case when coalesce(last_touch_campaign_id, last_touch_flow_id) is null then sum_revenue_cancelled_order else 0 end ) as organic_sum_revenue_cancelled_order\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_active_on_site ) as total_count_active_on_site\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_viewed_product ) as total_count_viewed_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_ordered_product ) as total_count_ordered_product\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_placed_order ) as total_count_placed_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_refunded_order ) as total_count_refunded_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_cancelled_order ) as total_count_cancelled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_fulfilled_order ) as total_count_fulfilled_order\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_email ) as total_count_received_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_email ) as total_count_clicked_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_opened_email ) as total_count_opened_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_bounced_email ) as total_count_bounced_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_marked_email_as_spam ) as total_count_marked_email_as_spam\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_dropped_email ) as total_count_dropped_email\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_list ) as total_count_subscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_to_list ) as total_count_unsubscribed_to_list\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed ) as total_count_unsubscribed\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_updated_email_preferences ) as total_count_updated_email_preferences\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_subscribed_to_back_in_stock ) as total_count_subscribed_to_back_in_stock\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_merged_profile ) as total_count_merged_profile\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_received_sms ) as total_count_received_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_clicked_sms ) as total_count_clicked_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_consented_to_receive_sms ) as total_count_consented_to_receive_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_sent_sms ) as total_count_sent_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_unsubscribed_from_sms ) as total_count_unsubscribed_from_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n \n -- sum up any count/sum_revenue metrics -> prefix with `total` since we're pulling out organic sums as well\n , sum( count_failed_to_deliver_sms ) as total_count_failed_to_deliver_sms\n\n -- let's pull out the organic (not attributed to a flow or campaign) revenue sums\n \n\n from person_campaign_flow\n group by 1,2\n\n)\n\nselect * from agg_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__person_metrics\""}, "model.klaviyo.int_klaviyo__event_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.type_timestamp"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": null, "schema": "int_klaviyo", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_event_id", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_int_klaviyo", "fqn": ["klaviyo", "intermediate", "int_klaviyo__event_attribution"], "unique_id": "model.klaviyo.int_klaviyo__event_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_event_id',\n partition_by={\n \"field\": \"occurred_on\",\n \"data_type\": \"date\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from {{ var('event_table') }}\n\n {% if is_incremental() %}\n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from {{ var('event_table') }}\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select {{ dbt.dateadd(datepart = 'hour', \n interval = -1,\n from_date_or_timestamp = 'max(_fivetran_synced)' ) }} \n from {{ this }}\n ), '2012-01-01') as {{ dbt.type_timestamp() }} ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n {% endif %}\n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when {{ dbt.datediff('session_start_at', 'occurred_at', 'hour') }} <= (\n case \n when lower(session_event_type) like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "intermediate/int_klaviyo__event_attribution.sql", "original_file_path": "models/intermediate/int_klaviyo__event_attribution.sql", "name": "int_klaviyo__event_attribution", "alias": "int_klaviyo__event_attribution", "checksum": {"name": "sha256", "checksum": "1f480b6b2d20e722233a9b0067f3bb54cb49300094e2cc39e6597cbca1c04f05"}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "Table enriching events with an additional layer of last-touch attribution. Though Klaviyo already performs attribution on events each day, this extra step is necessary, as certain kinds of events/metrics never get attributed to flows or campaigns via Klaviyo's internal model. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with conversions. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. Note that this refers to the events eligible to credit campaigns and flows with conversions, _not_ the events eligible to receive attribution (all kinds of events are privy to this).\nSimilar to Klaviyo, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nNote: this model has an incremental materialization. Custom event-columns specified by the `klaviyo__event_pass_through_columns` variable will appear here as well.\n", "columns": {"variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_at": {"name": "occurred_at", "description": "Timestamp of when the event was triggered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "event_id": {"name": "event_id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "numeric_value": {"name": "numeric_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_type": {"name": "touch_type", "description": "Type of touch/message that the event itself is already attributed to in Klaviyo. Either 'flow', 'campaign', or null. Note that the package will refer to campaign and flow interactions as \"touches\".\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "occurred_on": {"name": "occurred_on", "description": "Calendar date (UTC) on which the event occurred.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_id": {"name": "touch_id", "description": "Coalescing of the Klaviyo-attributed campaign_id and flow_id.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "touch_session": {"name": "touch_session", "description": "ID used to batch an individual person's events into attribution-groups. Each event that comes attributed to a campaign or flow begins a new session/batch, in which the following events without a flow/campaign_id have the same `touch_session` (and may be attributed to the same flow/campaign).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_start_at": {"name": "session_start_at", "description": "Timestamp of when, relative to the current event, this person last interacted with a campaign or flow according to Klaviyo. This is the beginning of the event's touch-session.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "session_event_type": {"name": "session_event_type", "description": "The type of event through which, relative to the current event, the person last interacted with a campaign or flow. This information is used to determine which lookback window to use (email vs sms).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_id": {"name": "last_touch_id", "description": "The campaign or flow that the package attributed the event to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_type": {"name": "last_touch_type", "description": "What kind of touch the event was attributed to by the package -- 'campaign', 'flow', or null.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "UTC Timestamp that indicates the start time of the Fivetran job that synced this event row.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "unique_event_id": {"name": "unique_event_id", "description": "The unique identifier for the combination of event_id and source_relation columns.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioining together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "klaviyo://models/intermediate/int_klaviyo.yml", "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo__event_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "int_klaviyo", "unique_key": "unique_event_id", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1671482451.229769, "compiled_code": "\n\nwith events as (\n\n select \n *,\n -- no event will be attributed to both a campaign and flow\n coalesce(campaign_id, flow_id) as touch_id,\n case \n when campaign_id is not null then 'campaign' \n when flow_id is not null then 'flow' \n else null end as touch_type -- defintion: touch = interaction with campaign/flow\n\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event\"\n\n \n -- grab **ALL** events for users who have any events in this new increment\n where person_id in (\n\n select distinct person_id\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event\"\n\n -- most events (from all kinds of integrations) at least once every hour\n -- https://help.klaviyo.com/hc/en-us/articles/115005253208\n where _fivetran_synced >= cast(coalesce( \n (\n select \n\n max(_fivetran_synced) + ((interval '1 hour') * (-1))\n\n \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__event_attribution\"\n ), '2012-01-01') as TIMESTAMP ) -- klaviyo was founded in 2012, so let's default the min date to then\n )\n \n),\n\n-- sessionize events based on attribution eligibility -- is it the right kind of event, and does it have a campaign or flow?\ncreate_sessions as (\n select\n *,\n -- default klaviyo__event_attribution_filter limits attribution-eligible events to to email opens, email clicks, and sms opens\n -- https://help.klaviyo.com/hc/en-us/articles/115005248128\n\n -- events that come with flow/campaign attributions (and are eligible event types) will create new sessions.\n -- non-attributed events that come in afterward will be batched into the same attribution-session\n sum(case when touch_id is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n then 1 else 0 end) over (\n partition by person_id, source_relation order by occurred_at asc rows between unbounded preceding and current row) as touch_session \n\n from events\n\n),\n\n-- \"session start\" refers to the event in a \"touch session\" that is already attributed with a campaign or flow by Klaviyo\n-- a new event that is attributed with a campaign/flow will trigger a new session, so there will only be one already-attributed event per each session \n-- events that are missing attributions will borrow data from the event that triggered the session, if they are in the lookback window (see `attribute` CTE)\nlast_touches as (\n\n select \n *,\n -- when did the touch session begin?\n min(occurred_at) over(partition by person_id, source_relation, touch_session) as session_start_at,\n\n -- get the kind of metric/event that triggered the attribution session, in order to decide \n -- to use the sms or email lookback value. \n first_value(type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row) as session_event_type\n\n from create_sessions\n),\n\nattribute as (\n\n select \n *,\n -- klaviyo uses different lookback windows for email and sms events\n -- default email lookback = 5 days (120 hours) -> https://help.klaviyo.com/hc/en-us/articles/115005248128#conversion-tracking1\n -- default sms lookback: 1 day (24 hours -> https://help.klaviyo.com/hc/en-us/articles/115005248128#sms-conversion-tracking7\n\n coalesce(touch_id, -- use pre-attributed flow/campaign if provided\n case \n when \n (\n ((occurred_at)::date - (session_start_at)::date)\n * 24 + date_part('hour', (occurred_at)::timestamp) - date_part('hour', (session_start_at)::timestamp))\n <= (\n case \n when lower(session_event_type) like '%sms%' then 24\n else 120 end\n ) -- if the events fall within the lookback window, attribute\n then first_value(touch_id) over (\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)\n else null end) as last_touch_id -- session qualified for attribution -> we will call this \"last touch\"\n\n from last_touches \n),\n\nfinal as (\n\n select\n *,\n\n -- get whether the event is attributed to a flow or campaign\n coalesce(touch_type, first_value(touch_type) over(\n partition by person_id, source_relation, touch_session order by occurred_at asc rows between unbounded preceding and current row)) \n\n as session_touch_type -- if the session events qualified for attribution, extract the type of touch they are attributed to\n\n from attribute \n)\n\nselect * from final", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__event_attribution\""}, "model.shopify.shopify__customer_cohorts": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__customer_cohorts"], "unique_id": "model.shopify.shopify__customer_cohorts", "raw_code": "with calendar as (\n\n select *\n from {{ ref('shopify__calendar') }}\n where cast({{ dbt.date_trunc('month','date_day') }} as date) = date_day\n\n), customers as (\n\n select *\n from {{ ref('shopify__customers') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n {{ dbt.date_trunc('month', 'first_order_timestamp') }} as cohort_month\n from calendar\n inner join customers\n on cast({{ dbt.date_trunc('month', 'first_order_timestamp') }} as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast({{ dbt.date_trunc('month', 'created_timestamp') }} as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n {% set partition_string = 'partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row' %}\n\n select\n *,\n sum(total_price_in_month) over ({{ partition_string }}) as total_price_lifetime,\n sum(order_count_in_month) over ({{ partition_string }}) as order_count_lifetime,\n sum(line_item_count_in_month) over ({{ partition_string }}) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n {{ dbt_utils.generate_surrogate_key(['date_month','customer_id','source_relation']) }} as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customer_cohorts.sql", "original_file_path": "models/shopify__customer_cohorts.sql", "name": "shopify__customer_cohorts", "alias": "shopify__customer_cohorts", "checksum": {"name": "sha256", "checksum": "97387e363d6fb5bfad38ffaabbcd3a54bd3afb18648a1e002b151f7d7658f7f7"}, "tags": [], "refs": [["shopify__calendar"], ["shopify__customers"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a customer's performance in a calendar month.", "columns": {"cohort_month": {"name": "cohort_month", "description": "The month the cohort belongs to, i.e the first month the customer had an order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cohort_month_number": {"name": "cohort_month_number", "description": "The 'number' of the `date_month` of the record, i.e. how many months from their start month this cohort occurred", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_cohort_id": {"name": "customer_cohort_id", "description": "Unique key representing a customer in a given month.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the related customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "date_month": {"name": "date_month", "description": "The calendar month the customer stats relate to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp of the customer's first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_in_month": {"name": "line_item_count_in_month", "description": "Number of line items purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count_lifetime": {"name": "line_item_count_lifetime", "description": "Number of line items purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_in_month": {"name": "order_count_in_month", "description": "Number of orders purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_count_lifetime": {"name": "order_count_lifetime", "description": "Number of orders purchased up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_in_month": {"name": "total_price_in_month", "description": "Total amount (in currency) purchased in the `date_month`", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price_lifetime": {"name": "total_price_lifetime", "description": "Total amount (in currency) up until and including this `date_month`.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customer_cohorts.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.248769, "compiled_code": "with calendar as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__calendar\"\n where cast(date_trunc('month', date_day) as date) = date_day\n\n), customers as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customers\"\n\n), orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__orders\"\n\n), customer_calendar as (\n\n select\n calendar.date_day as date_month,\n customers.customer_id,\n customers.first_order_timestamp,\n customers.source_relation,\n date_trunc('month', first_order_timestamp) as cohort_month\n from calendar\n inner join customers\n on cast(date_trunc('month', first_order_timestamp) as date) <= calendar.date_day\n\n), orders_joined as (\n\n select \n customer_calendar.date_month, \n customer_calendar.customer_id, \n customer_calendar.first_order_timestamp,\n customer_calendar.cohort_month,\n customer_calendar.source_relation,\n coalesce(count(distinct orders.order_id), 0) as order_count_in_month,\n coalesce(sum(orders.order_adjusted_total), 0) as total_price_in_month,\n coalesce(sum(orders.line_item_count), 0) as line_item_count_in_month\n from customer_calendar\n left join orders\n on customer_calendar.customer_id = orders.customer_id\n and customer_calendar.source_relation = orders.source_relation\n and customer_calendar.date_month = cast(date_trunc('month', created_timestamp) as date)\n group by 1,2,3,4,5\n\n), windows as (\n\n \n\n select\n *,\n sum(total_price_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as total_price_lifetime,\n sum(order_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as order_count_lifetime,\n sum(line_item_count_in_month) over (partition by customer_id, source_relation order by date_month rows between unbounded preceding and current row) as line_item_count_lifetime,\n row_number() over (partition by customer_id, source_relation order by date_month asc) as cohort_month_number\n from orders_joined\n \n), surrogate_key as (\n\n select \n *, \n \n \nmd5(cast(coalesce(cast(date_month as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(customer_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as customer_cohort_id\n from windows\n\n)\n\nselect *\nfrom surrogate_key", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customer_cohorts\""}, "model.shopify.shopify__orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars", "macro.fivetran_utils.json_parse", "macro.dbt.type_float"], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__orders__order_line_aggregates", "model.shopify_source.stg_shopify__order_adjustment", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__orders"], "unique_id": "model.shopify.shopify__orders", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__orders__order_line_aggregates') }}\n\n{% if var('shopify__using_order_adjustment', true) %}\n), order_adjustments as (\n\n select *\n from {{ var('shopify_order_adjustment') }}\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n{% endif %}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast({{ fivetran_utils.json_parse(\"total_shipping_price_set\",[\"shop_money\",\"amount\"]) }} as {{ dbt.type_float() }}) ,0) as shipping_cost,\n \n {% if var('shopify__using_order_adjustment', true) %}\n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n {% endif %}\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n {% endif %}\n (orders.total_price\n {% if var('shopify__using_order_adjustment', true) %}\n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n {% endif %}\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n {% endif %} ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n {% endif %}\n {% if var('shopify__using_order_adjustment', true) %}\n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n {% endif %}\n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__orders.sql", "original_file_path": "models/shopify__orders.sql", "name": "shopify__orders", "alias": "shopify__orders", "checksum": {"name": "sha256", "checksum": "423b0e297b935b36fa5e577280eb50c3a60dee686bf91546caaa81c7d8ff6afb"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__orders__order_line_aggregates"], ["stg_shopify__order_adjustment"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.290536, "compiled_code": "with __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n), __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), order_lines as (\n\n select *\n from __dbt__cte__shopify__orders__order_line_aggregates\n\n\n), order_adjustments as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_adjustment\"\n\n), order_adjustments_aggregates as (\n select\n order_id,\n source_relation,\n sum(amount) as order_adjustment_amount,\n sum(tax_amount) as order_adjustment_tax_amount\n from order_adjustments\n group by 1,2\n\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refund_aggregates as (\n select\n order_id,\n source_relation,\n sum(subtotal) as refund_subtotal,\n sum(total_tax) as refund_total_tax\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n orders.*,\n coalesce(cast(\n\n total_shipping_price_set::json #>> '{shop_money,amount}'\n\n as FLOAT) ,0) as shipping_cost,\n \n \n order_adjustments_aggregates.order_adjustment_amount,\n order_adjustments_aggregates.order_adjustment_tax_amount,\n \n\n \n refund_aggregates.refund_subtotal,\n refund_aggregates.refund_total_tax,\n \n (orders.total_price\n \n + coalesce(order_adjustments_aggregates.order_adjustment_amount,0) + coalesce(order_adjustments_aggregates.order_adjustment_tax_amount,0) \n \n \n - coalesce(refund_aggregates.refund_subtotal,0) - coalesce(refund_aggregates.refund_total_tax,0)\n ) as order_adjusted_total,\n order_lines.line_item_count\n from orders\n left join order_lines\n on orders.order_id = order_lines.order_id\n and orders.source_relation = order_lines.source_relation\n\n \n left join refund_aggregates\n on orders.order_id = refund_aggregates.order_id\n and orders.source_relation = refund_aggregates.source_relation\n \n \n left join order_adjustments_aggregates\n on orders.order_id = order_adjustments_aggregates.order_id\n and orders.source_relation = order_adjustments_aggregates.source_relation\n \n\n), windows as (\n\n select \n *,\n row_number() over (partition by customer_id, source_relation order by created_timestamp) as customer_order_seq_number\n from joined\n\n), new_vs_repeat as (\n\n select \n *,\n case \n when customer_order_seq_number = 1 then 'new'\n else 'repeat'\n end as new_vs_repeat\n from windows\n\n)\n\nselect *\nfrom new_vs_repeat", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}, {"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__orders\""}, "model.shopify.shopify__products": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__product", "model.shopify.shopify__order_lines", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__products"], "unique_id": "model.shopify.shopify__products", "raw_code": "with products as (\n\n select *\n from {{ var('shopify_product') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__orders')}}\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n {% endif %}\n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n {% endif %}\n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__products.sql", "original_file_path": "models/shopify__products.sql", "name": "shopify__products", "alias": "shopify__products", "checksum": {"name": "sha256", "checksum": "e699f3d418cc215e557b5a7ad0705f82470c62c8b54b3fbb29a2896c507ba033"}, "tags": [], "refs": [["stg_shopify__product"], ["shopify__order_lines"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_timestamp": {"name": "published_timestamp", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold": {"name": "quantity_sold", "description": "Quantity of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold": {"name": "subtotal_sold", "description": "Total amount of the product sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_sold_net_refunds": {"name": "quantity_sold_net_refunds", "description": "Quantity of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_sold_net_refunds": {"name": "subtotal_sold_net_refunds", "description": "Total amount of the product sold, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the product was first ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the product was most recently ordered.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__products.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.297057, "compiled_code": "with products as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__order_lines\"\n\n), orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__orders\"\n\n), order_lines_aggregated as (\n\n select \n order_lines.product_id, \n order_lines.source_relation,\n sum(order_lines.quantity) as quantity_sold,\n sum(order_lines.pre_tax_price) as subtotal_sold,\n\n \n sum(order_lines.quantity_net_refunds) as quantity_sold_net_refunds,\n sum(order_lines.subtotal_net_refunds) as subtotal_sold_net_refunds,\n \n\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp\n from order_lines\n left join orders\n using (order_id, source_relation)\n group by 1,2\n\n), joined as (\n\n select\n products.*,\n coalesce(order_lines_aggregated.quantity_sold,0) as quantity_sold,\n coalesce(order_lines_aggregated.subtotal_sold,0) as subtotal_sold,\n\n \n coalesce(order_lines_aggregated.quantity_sold_net_refunds,0) as quantity_sold_net_refunds,\n coalesce(order_lines_aggregated.subtotal_sold_net_refunds,0) as subtotal_sold_net_refunds,\n \n \n order_lines_aggregated.first_order_timestamp,\n order_lines_aggregated.most_recent_order_timestamp\n from products\n left join order_lines_aggregated\n using (product_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__products\""}, "model.shopify.shopify__transactions": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.json_parse", "macro.dbt.type_numeric"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__transactions"], "unique_id": "model.shopify.shopify__transactions", "raw_code": "with transactions as (\n select *\n from {{ var('shopify_transaction') }}\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) as exchange_rate,\n coalesce(cast(nullif({{ fivetran_utils.json_parse(\"receipt\",[\"charges\",\"data\",0,\"balance_transaction\",\"exchange_rate\"]) }}, '') as {{ dbt.type_numeric() }} ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__transactions.sql", "original_file_path": "models/shopify__transactions.sql", "name": "shopify__transactions", "alias": "shopify__transactions", "checksum": {"name": "sha256", "checksum": "bd6f41006c7d0c20a0d1fbcbc684f1487570f12e7139030ea4f1e39b2ef521b9"}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "Timestamp of the date the record was synced by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "exchange_rate": {"name": "exchange_rate", "description": "The exchange rate between the home currency and the currency of sale at the time of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_calculated_amount": {"name": "currency_exchange_calculated_amount", "description": "The total amount of the transaction with the currency exchange rate applied.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__transactions.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.308542, "compiled_code": "with transactions as (\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__transaction\"\n\n), exchange_rate as (\n\n select\n *,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) as exchange_rate,\n coalesce(cast(nullif(\n\n receipt::json #>> '{charges,data,0,balance_transaction,exchange_rate}'\n\n, '') as numeric(28,6) ),1) * amount as currency_exchange_calculated_amount\n from transactions\n\n)\n\nselect *\nfrom exchange_rate", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\""}, "model.shopify.shopify__customers": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer", "model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__customers"], "unique_id": "model.shopify.shopify__customers", "raw_code": "with customers as (\n\n select \n {{ dbt_utils.star(from=ref('stg_shopify__customer'), except=[\"orders_count\", \"total_spent\"]) }}\n from {{ var('shopify_customer') }}\n\n), orders as (\n\n select *\n from {{ ref('shopify__customers__order_aggregates' )}}\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__customers.sql", "original_file_path": "models/shopify__customers.sql", "name": "shopify__customers", "alias": "shopify__customers", "checksum": {"name": "sha256", "checksum": "70e28dce05bc26f7fc7678928e4bf4ab455d399c6f314f54d3c4671be96d3b7e"}, "tags": [], "refs": [["stg_shopify__customer"], ["stg_shopify__customer"], ["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_timestamp": {"name": "first_order_timestamp", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "most_recent_order_timestamp": {"name": "most_recent_order_timestamp", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__customers.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.2943249, "compiled_code": "with __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),customers as (\n\n select \n \"_fivetran_synced\",\n \"has_accepted_marketing\",\n \"created_timestamp\",\n \"default_address_id\",\n \"email\",\n \"first_name\",\n \"customer_id\",\n \"last_name\",\n \"phone\",\n \"account_state\",\n \"is_tax_exempt\",\n \"updated_timestamp\",\n \"is_verified_email\",\n \"source_relation\"\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__customer\"\n\n), orders as (\n\n select *\n from __dbt__cte__shopify__customers__order_aggregates\n\n), joined as (\n\n select \n customers.*,\n orders.first_order_timestamp,\n orders.most_recent_order_timestamp,\n coalesce(orders.average_order_value, 0) as average_order_value,\n coalesce(orders.lifetime_total_spent, 0) as lifetime_total_spent,\n coalesce(orders.lifetime_total_refunded, 0) as lifetime_total_refunded,\n (coalesce(orders.lifetime_total_spent, 0) - coalesce(orders.lifetime_total_refunded, 0)) as lifetime_total_amount,\n coalesce(orders.lifetime_count_orders, 0) as lifetime_count_orders\n from customers\n left join orders\n using (customer_id, source_relation)\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customers\""}, "model.shopify.shopify__order_lines": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant", "model.shopify.shopify__orders__order_refunds"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "shopify__order_lines"], "unique_id": "model.shopify.shopify__order_lines", "raw_code": "with order_lines as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), product_variants as (\n\n select *\n from {{ var('shopify_product_variant') }}\n\n{% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n), refunds as (\n\n select *\n from {{ ref('shopify__orders__order_refunds') }}\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n{% endif %}\n\n), joined as (\n\n select\n order_lines.*,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n {% endif %}\n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n {% endif %}\n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "shopify__order_lines.sql", "original_file_path": "models/shopify__order_lines.sql", "name": "shopify__order_lines", "alias": "shopify__order_lines", "checksum": {"name": "sha256", "checksum": "c9fa8308e1257375b69ec4b40135a4d1ad64fab1d9e0c14b7a353132438df5d8"}, "tags": [], "refs": [["stg_shopify__order_line"], ["stg_shopify__product_variant"], ["shopify__orders__order_refunds"]], "sources": [], "metrics": [], "description": "Each record represents a line item of an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_gift_card": {"name": "is_gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_requiring_shipping": {"name": "is_requiring_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_taxable": {"name": "is_taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_quantity": {"name": "refunded_quantity", "description": "Quantity of the item that has been refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity_net_refunds": {"name": "quantity_net_refunds", "description": "Quantity ordered, excluding refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_barcode": {"name": "variant_barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_compare_at_price": {"name": "variant_compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_created_at": {"name": "variant_created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_fulfillment_service": {"name": "variant_fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_grams": {"name": "variant_grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_image_id": {"name": "variant_image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_management": {"name": "variant_inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_policy": {"name": "variant_inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_inventory_quantity": {"name": "variant_inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_1": {"name": "variant_option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_2": {"name": "variant_option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_option_3": {"name": "variant_option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_position": {"name": "variant_position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_price": {"name": "variant_price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_requiring_shipping": {"name": "variant_is_requiring_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_sku": {"name": "variant_sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_is_taxable": {"name": "variant_is_taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_title": {"name": "variant_title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_updated_at": {"name": "variant_updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight": {"name": "variant_weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_weight_unit": {"name": "variant_weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refunded_subtotal": {"name": "refunded_subtotal", "description": "Subtotal amount of the refund applied to the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_net_refunds": {"name": "subtotal_net_refunds", "description": "Subtotal of the order line with refunds subtracted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "Image id of the product variant associated with the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/shopify.yml", "compiled_path": "target/compiled/shopify/models/shopify__order_lines.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482451.3037388, "compiled_code": "with __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n),order_lines as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), product_variants as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_variant\"\n\n\n), refunds as (\n\n select *\n from __dbt__cte__shopify__orders__order_refunds\n\n), refunds_aggregated as (\n \n select\n order_line_id,\n source_relation,\n sum(quantity) as quantity,\n sum(coalesce(subtotal, 0)) as subtotal\n from refunds\n group by 1,2\n\n\n), joined as (\n\n select\n order_lines.*,\n\n \n coalesce(refunds_aggregated.quantity,0) as refunded_quantity,\n coalesce(refunds_aggregated.subtotal,0) as refunded_subtotal,\n order_lines.quantity - coalesce(refunds_aggregated.quantity,0) as quantity_net_refunds,\n order_lines.pre_tax_price - coalesce(refunds_aggregated.subtotal,0) as subtotal_net_refunds,\n \n \n product_variants.created_timestamp as variant_created_at,\n product_variants.updated_timestamp as variant_updated_at,\n product_variants.inventory_item_id,\n product_variants.image_id,\n product_variants.title as variant_title,\n product_variants.price as variant_price,\n product_variants.sku as variant_sku,\n product_variants.position as variant_position,\n product_variants.inventory_policy as variant_inventory_policy,\n product_variants.compare_at_price as variant_compare_at_price,\n product_variants.fulfillment_service as variant_fulfillment_service,\n product_variants.inventory_management as variant_inventory_management,\n product_variants.is_taxable as variant_is_taxable,\n product_variants.barcode as variant_barcode,\n product_variants.grams as variant_grams,\n product_variants.inventory_quantity as variant_inventory_quantity,\n product_variants.weight as variant_weight,\n product_variants.weight_unit as variant_weight_unit,\n product_variants.option_1 as variant_option_1,\n product_variants.option_2 as variant_option_2,\n product_variants.option_3 as variant_option_3,\n product_variants.tax_code as variant_tax_code,\n product_variants.is_requiring_shipping as variant_is_requiring_shipping\n from order_lines\n \n left join refunds_aggregated\n on refunds_aggregated.order_line_id = order_lines.order_line_id\n and refunds_aggregated.source_relation = order_lines.source_relation\n \n left join product_variants\n on product_variants.variant_id = order_lines.variant_id\n and product_variants.source_relation = order_lines.source_relation\n\n)\n\nselect *\nfrom joined", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_refunds", "sql": " __dbt__cte__shopify__orders__order_refunds as (\n\n\nwith refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join\n)"}], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__order_lines\""}, "model.shopify.shopify__calendar": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.date_spine"], "nodes": []}, "config": {"enabled": true, "alias": null, "schema": "shopify", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "utils", "shopify__calendar"], "unique_id": "model.shopify.shopify__calendar", "raw_code": "{{ dbt_utils.date_spine(\n datepart=\"day\",\n start_date=\"cast('2019-01-01' as date)\",\n end_date=\"current_date\"\n )\n}}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "utils/shopify__calendar.sql", "original_file_path": "models/utils/shopify__calendar.sql", "name": "shopify__calendar", "alias": "shopify__calendar", "checksum": {"name": "sha256", "checksum": "330711091f6b47526ac5e8bc39960b2d171633362c0e10b666931be500abeddd"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/utils/shopify__calendar.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "table"}, "created_at": 1671482450.8978062, "compiled_code": "\n\n\n\n\n\nwith rawdata as (\n\n \n\n \n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n \n p0.generated_number * power(2, 0)\n + \n \n p1.generated_number * power(2, 1)\n + \n \n p2.generated_number * power(2, 2)\n + \n \n p3.generated_number * power(2, 3)\n + \n \n p4.generated_number * power(2, 4)\n + \n \n p5.generated_number * power(2, 5)\n + \n \n p6.generated_number * power(2, 6)\n + \n \n p7.generated_number * power(2, 7)\n + \n \n p8.generated_number * power(2, 8)\n + \n \n p9.generated_number * power(2, 9)\n + \n \n p10.generated_number * power(2, 10)\n \n \n + 1\n as generated_number\n\n from\n\n \n p as p0\n cross join \n \n p as p1\n cross join \n \n p as p2\n cross join \n \n p as p3\n cross join \n \n p as p4\n cross join \n \n p as p5\n cross join \n \n p as p6\n cross join \n \n p as p7\n cross join \n \n p as p8\n cross join \n \n p as p9\n cross join \n \n p as p10\n \n \n\n )\n\n select *\n from unioned\n where generated_number <= 1448\n order by generated_number\n\n\n\n),\n\nall_periods as (\n\n select (\n \n\n cast('2019-01-01' as date) + ((interval '1 day') * (row_number() over (order by 1) - 1))\n\n\n ) as date_day\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_day <= current_date\n\n)\n\nselect * from filtered\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__calendar\""}, "model.shopify.shopify__orders__order_line_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_line_aggregates"], "unique_id": "model.shopify.shopify__orders__order_line_aggregates", "raw_code": "with order_line as (\n\n select *\n from {{ var('shopify_order_line') }}\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_line_aggregates.sql", "original_file_path": "models/intermediate/shopify__orders__order_line_aggregates.sql", "name": "shopify__orders__order_line_aggregates", "alias": "shopify__orders__order_line_aggregates", "checksum": {"name": "sha256", "checksum": "837181b671b2beb8e58924357d213e33d6479a47e16c604db35cbb6ce6489fa8"}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_line_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1671482451.3261352, "compiled_code": "with order_line as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__customers__order_aggregates": {"compiled": true, "resource_type": "model", "depends_on": {"macros": [], "nodes": ["model.shopify_source.stg_shopify__order", "model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "intermediate", "shopify__customers__order_aggregates"], "unique_id": "model.shopify.shopify__customers__order_aggregates", "raw_code": "with orders as (\n\n select *\n from {{ var('shopify_order') }}\n\n), transactions as (\n\n select *\n from {{ ref('shopify__transactions' )}}\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__customers__order_aggregates.sql", "original_file_path": "models/intermediate/shopify__customers__order_aggregates.sql", "name": "shopify__customers__order_aggregates", "alias": "shopify__customers__order_aggregates", "checksum": {"name": "sha256", "checksum": "902e082d29e1b00c443c6d18109a496dc53a1a7e927134bc8a523cdc106076bd"}, "tags": [], "refs": [["stg_shopify__order"], ["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__customers__order_aggregates.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral"}, "created_at": 1671482451.3259032, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify.shopify__orders__order_refunds": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.enabled_vars"], "nodes": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": null, "schema": "shopify", "database": null, "tags": [], "meta": {}, "materialized": "ephemeral", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify", "fqn": ["shopify", "intermediate", "shopify__orders__order_refunds"], "unique_id": "model.shopify.shopify__orders__order_refunds", "raw_code": "{{ config(enabled=fivetran_utils.enabled_vars(['shopify__using_order_line_refund','shopify__using_refund'])) }}\n\nwith refunds as (\n\n select *\n from {{ var('shopify_refund') }}\n\n), order_line_refunds as (\n\n select *\n from {{ var('shopify_order_line_refund') }}\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "intermediate/shopify__orders__order_refunds.sql", "original_file_path": "models/intermediate/shopify__orders__order_refunds.sql", "name": "shopify__orders__order_refunds", "alias": "shopify__orders__order_refunds", "checksum": {"name": "sha256", "checksum": "1bcc3be258e3bdda4c6845e465f95e7e5b4e0eee823b169e0cd5e7eff4cf7792"}, "tags": [], "refs": [["stg_shopify__refund"], ["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify://models/intermediate/intermediate.yml", "compiled_path": "target/compiled/shopify/models/intermediate/shopify__orders__order_refunds.sql", "build_path": null, "deferred": false, "unrendered_config": {"schema": "shopify", "materialized": "ephemeral", "enabled": true}, "created_at": 1671482451.326329, "compiled_code": "\n\nwith refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n\n), order_line_refunds as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n \n), refund_join as (\n\n select \n refunds.refund_id,\n refunds.created_at,\n refunds.order_id,\n refunds.user_id,\n refunds.source_relation,\n order_line_refunds.order_line_refund_id,\n order_line_refunds.order_line_id,\n order_line_refunds.restock_type,\n order_line_refunds.quantity,\n order_line_refunds.subtotal,\n order_line_refunds.total_tax\n from refunds\n left join order_line_refunds\n on refunds.refund_id = order_line_refunds.refund_id\n and refunds.source_relation = order_line_refunds.source_relation\n\n)\n\nselect *\nfrom refund_join", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null}, "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__customer_enhanced"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "raw_code": "with shopify_customers as (\n\n select *\n from {{ ref('int__shopify_customer_rollup') }}\n\n), klaviyo_persons as (\n\n select *\n from {{ ref('int__klaviyo_person_rollup') }}\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n {{ dbt_utils.star(from=ref('int__shopify_customer_rollup'), relation_alias='shopify_customers', prefix='shopify_',\n except=['source_relation','email', 'full_name', 'customer_ids', 'phone_numbers', 'first_shopify_account_made_at','last_shopify_account_made_at', \n 'last_updated_at', 'is_verified_email'] ) \n }},\n shopify_customers.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__klaviyo_person_rollup'), relation_alias='klaviyo_persons', prefix='klaviyo_',\n except=['source_relation','email', 'full_name', 'first_klaviyo_account_made_at', 'last_klaviyo_account_made_at', 'person_ids', 'phone_numbers', 'last_updated_at'] ) \n }},\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__customer_enhanced.sql", "original_file_path": "models/shopify_holistic_reporting__customer_enhanced.sql", "name": "shopify_holistic_reporting__customer_enhanced", "alias": "shopify_holistic_reporting__customer_enhanced", "checksum": {"name": "sha256", "checksum": "db442dfeedb2bb460e284b8e3d2742abc3f9ae90d8db670d6019afc567b53a09"}, "tags": [], "refs": [["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"], ["int__shopify_customer_rollup"], ["int__klaviyo_person_rollup"]], "sources": [], "metrics": [], "description": "Table consolidating customers and their information and activity metrics from across all platforms. A full outer join is performed in order to union together users who may not exist in both sources, and personal information is coalesced to consolidate as much information as possible. Includes any custom columns specified in passthrough variables for both Shopify and Klaviyo.\nFor **Klaviyo** metrics: Counts of instances of triggered events and sums of the numeric value (i.e. revenue) associated with events (total vs organic/not attributed to flows or campaigns) will be pivoted out into columns, as configured by the klaviyo__count_metrics and klaviyo__sum_revenue_metricsvariables, respectively. See the Klaviyo dbt_project.yml file for the default metrics used. These columns will be prefixed with total_count_, total_sum_revenue_ (organic + attributed), and organic_sum_revenue_ (not attributed to a campaign or flow).\nColumns that come _only_ from one source will be prefixed with that source name (ie klaviyo_)\n", "columns": {"shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_has_accepted_marketing": {"name": "shopify_has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_first_created_at": {"name": "shopify_customer_first_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_created_at": {"name": "shopify_customer_last_created_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_last_updated_at": {"name": "shopify_customer_last_updated_at", "description": "Timestamp of when the shopify customer was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_default_address_id": {"name": "shopify_default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_customer_ids": {"name": "shopify_customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_count_orders": {"name": "shopify_lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "The unique phone number (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_account_state": {"name": "shopify_account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_is_tax_exempt": {"name": "shopify_is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_updated_at": {"name": "shopify_last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_shopify_email_verified": {"name": "is_shopify_email_verified", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_first_order_at": {"name": "shopify_first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_last_order_at": {"name": "shopify_last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_average_order_value": {"name": "shopify_average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_spent": {"name": "shopify_lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_refunded": {"name": "shopify_lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_lifetime_total_amount": {"name": "shopify_lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_id": {"name": "klaviyo_person_id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_1": {"name": "klaviyo_address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_address_2": {"name": "klaviyo_address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_city": {"name": "klaviyo_city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_country": {"name": "klaviyo_country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_zip": {"name": "klaviyo_zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_created_at": {"name": "klaviyo_person_created_at", "description": "Timestamp of when the person's profile was created in Klaviyo.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_latitude": {"name": "klaviyo_latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_longitude": {"name": "klaviyo_longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_organization": {"name": "klaviyo_organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_region": {"name": "klaviyo_region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_timezone": {"name": "klaviyo_timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_title": {"name": "klaviyo_title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_person_updated_at": {"name": "klaviyo_person_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_campaigns": {"name": "klaviyo_count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_count_total_flows": {"name": "klaviyo_count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_campaign_touch_at": {"name": "klaviyo_first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_campaign_touch_at": {"name": "klaviyo_last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_flow_touch_at": {"name": "klaviyo_first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_flow_touch_at": {"name": "klaviyo_last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__customer_enhanced.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1671482451.342856, "compiled_code": "with shopify_customers as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__shopify_customer_rollup\"\n\n), klaviyo_persons as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__klaviyo_person_rollup\"\n\n), combine_customer_info as (\n\n select\n coalesce(shopify_customers.email, klaviyo_persons.email) as email,\n\n coalesce(klaviyo_persons.full_name, shopify_customers.full_name) as full_name,\n shopify_customers.customer_ids as shopify_customer_ids,\n klaviyo_persons.person_ids as klaviyo_person_ids,\n coalesce(shopify_customers.phone_numbers, klaviyo_persons.phone_numbers) as phone_number,\n shopify_customers.first_shopify_account_made_at as shopify_customer_first_created_at,\n shopify_customers.last_shopify_account_made_at as shopify_customer_last_created_at,\n klaviyo_persons.first_klaviyo_account_made_at as klaviyo_person_first_created_at,\n klaviyo_persons.last_klaviyo_account_made_at as klaviyo_person_last_created_at,\n shopify_customers.last_updated_at as shopify_customer_last_updated_at,\n klaviyo_persons.last_updated_at as klaviyo_person_last_updated_at,\n shopify_customers.is_verified_email as is_shopify_email_verified,\n\n shopify_customers.\"first_order_at\" as \"shopify_first_order_at\",\n shopify_customers.\"last_order_at\" as \"shopify_last_order_at\",\n shopify_customers.\"lifetime_total_spent\" as \"shopify_lifetime_total_spent\",\n shopify_customers.\"lifetime_total_refunded\" as \"shopify_lifetime_total_refunded\",\n shopify_customers.\"lifetime_total_amount\" as \"shopify_lifetime_total_amount\",\n shopify_customers.\"lifetime_count_orders\" as \"shopify_lifetime_count_orders\",\n shopify_customers.\"average_order_value\" as \"shopify_average_order_value\",\n shopify_customers.\"has_accepted_marketing\" as \"shopify_has_accepted_marketing\",\n shopify_customers.\"is_tax_exempt\" as \"shopify_is_tax_exempt\",\n shopify_customers.\"default_address_id\" as \"shopify_default_address_id\",\n shopify_customers.\"account_state\" as \"shopify_account_state\",\n shopify_customers.source_relation as shopify_source_relation,\n\n klaviyo_persons.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_persons.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_persons.\"first_campaign_touch_at\" as \"klaviyo_first_campaign_touch_at\",\n klaviyo_persons.\"last_campaign_touch_at\" as \"klaviyo_last_campaign_touch_at\",\n klaviyo_persons.\"first_flow_touch_at\" as \"klaviyo_first_flow_touch_at\",\n klaviyo_persons.\"last_flow_touch_at\" as \"klaviyo_last_flow_touch_at\",\n klaviyo_persons.\"count_total_campaigns\" as \"klaviyo_count_total_campaigns\",\n klaviyo_persons.\"count_total_flows\" as \"klaviyo_count_total_flows\",\n klaviyo_persons.\"address_1\" as \"klaviyo_address_1\",\n klaviyo_persons.\"address_2\" as \"klaviyo_address_2\",\n klaviyo_persons.\"city\" as \"klaviyo_city\",\n klaviyo_persons.\"country\" as \"klaviyo_country\",\n klaviyo_persons.\"zip\" as \"klaviyo_zip\",\n klaviyo_persons.\"latitude\" as \"klaviyo_latitude\",\n klaviyo_persons.\"longitude\" as \"klaviyo_longitude\",\n klaviyo_persons.\"organization\" as \"klaviyo_organization\",\n klaviyo_persons.\"region\" as \"klaviyo_region\",\n klaviyo_persons.\"timezone\" as \"klaviyo_timezone\",\n klaviyo_persons.\"title\" as \"klaviyo_title\",\n klaviyo_persons.\"total_sum_revenue_refunded_order\" as \"klaviyo_total_sum_revenue_refunded_order\",\n klaviyo_persons.\"organic_sum_revenue_refunded_order\" as \"klaviyo_organic_sum_revenue_refunded_order\",\n klaviyo_persons.\"total_sum_revenue_placed_order\" as \"klaviyo_total_sum_revenue_placed_order\",\n klaviyo_persons.\"organic_sum_revenue_placed_order\" as \"klaviyo_organic_sum_revenue_placed_order\",\n klaviyo_persons.\"total_sum_revenue_ordered_product\" as \"klaviyo_total_sum_revenue_ordered_product\",\n klaviyo_persons.\"organic_sum_revenue_ordered_product\" as \"klaviyo_organic_sum_revenue_ordered_product\",\n klaviyo_persons.\"total_sum_revenue_checkout_started\" as \"klaviyo_total_sum_revenue_checkout_started\",\n klaviyo_persons.\"organic_sum_revenue_checkout_started\" as \"klaviyo_organic_sum_revenue_checkout_started\",\n klaviyo_persons.\"total_sum_revenue_cancelled_order\" as \"klaviyo_total_sum_revenue_cancelled_order\",\n klaviyo_persons.\"organic_sum_revenue_cancelled_order\" as \"klaviyo_organic_sum_revenue_cancelled_order\",\n klaviyo_persons.\"total_count_active_on_site\" as \"klaviyo_total_count_active_on_site\",\n klaviyo_persons.\"total_count_viewed_product\" as \"klaviyo_total_count_viewed_product\",\n klaviyo_persons.\"total_count_ordered_product\" as \"klaviyo_total_count_ordered_product\",\n klaviyo_persons.\"total_count_placed_order\" as \"klaviyo_total_count_placed_order\",\n klaviyo_persons.\"total_count_refunded_order\" as \"klaviyo_total_count_refunded_order\",\n klaviyo_persons.\"total_count_cancelled_order\" as \"klaviyo_total_count_cancelled_order\",\n klaviyo_persons.\"total_count_fulfilled_order\" as \"klaviyo_total_count_fulfilled_order\",\n klaviyo_persons.\"total_count_received_email\" as \"klaviyo_total_count_received_email\",\n klaviyo_persons.\"total_count_clicked_email\" as \"klaviyo_total_count_clicked_email\",\n klaviyo_persons.\"total_count_opened_email\" as \"klaviyo_total_count_opened_email\",\n klaviyo_persons.\"total_count_bounced_email\" as \"klaviyo_total_count_bounced_email\",\n klaviyo_persons.\"total_count_marked_email_as_spam\" as \"klaviyo_total_count_marked_email_as_spam\",\n klaviyo_persons.\"total_count_dropped_email\" as \"klaviyo_total_count_dropped_email\",\n klaviyo_persons.\"total_count_subscribed_to_list\" as \"klaviyo_total_count_subscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed_to_list\" as \"klaviyo_total_count_unsubscribed_to_list\",\n klaviyo_persons.\"total_count_unsubscribed\" as \"klaviyo_total_count_unsubscribed\",\n klaviyo_persons.\"total_count_updated_email_preferences\" as \"klaviyo_total_count_updated_email_preferences\",\n klaviyo_persons.\"total_count_subscribed_to_back_in_stock\" as \"klaviyo_total_count_subscribed_to_back_in_stock\",\n klaviyo_persons.\"total_count_merged_profile\" as \"klaviyo_total_count_merged_profile\",\n klaviyo_persons.\"total_count_received_sms\" as \"klaviyo_total_count_received_sms\",\n klaviyo_persons.\"total_count_clicked_sms\" as \"klaviyo_total_count_clicked_sms\",\n klaviyo_persons.\"total_count_consented_to_receive_sms\" as \"klaviyo_total_count_consented_to_receive_sms\",\n klaviyo_persons.\"total_count_sent_sms\" as \"klaviyo_total_count_sent_sms\",\n klaviyo_persons.\"total_count_unsubscribed_from_sms\" as \"klaviyo_total_count_unsubscribed_from_sms\",\n klaviyo_persons.\"total_count_failed_to_deliver_sms\" as \"klaviyo_total_count_failed_to_deliver_sms\",\n klaviyo_persons.source_relation as klaviyo_source_relation\n\n from shopify_customers\n full outer join klaviyo_persons \n on shopify_customers.email = lower(klaviyo_persons.email) -- redshift doesn't like doing 2 lowers here. we lowercase shopify.email in an intermediate model\n\n)\n\nselect *\nfrom combine_customer_info", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.is_incremental", "macro.dbt.datediff", "macro.dbt_utils.star", "macro.dbt_utils.generate_surrogate_key"], "nodes": ["model.shopify.shopify__orders", "model.klaviyo.klaviyo__events", "model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "database": null, "tags": [], "meta": {}, "materialized": "incremental", "incremental_strategy": "delete+insert", "persist_docs": {}, "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": "unique_order_key", "on_schema_change": "ignore", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "partition_by": null, "file_format": "delta", "post-hook": [], "pre-hook": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__orders_attribution"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "raw_code": "{{\n config(\n materialized='incremental',\n unique_key='unique_order_key',\n partition_by={\n \"field\": \"created_timestamp\",\n \"data_type\": \"timestamp\"\n } if target.type == 'bigquery' else none,\n incremental_strategy = 'merge' if target.type not in ('postgres', 'redshift') else 'delete+insert',\n file_format = 'delta'\n )\n}}\n\nwith orders as (\n\n select *\n from {{ ref('shopify__orders') }}\n\n -- just grab new + newly updated orders\n {% if is_incremental() %}\n where updated_timestamp >= (select max(updated_timestamp) from {{ this }})\n {% endif %}\n\n), events as (\n\n select \n *\n from {{ ref('klaviyo__events') }}\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n {% if var('klaviyo__eligible_attribution_events') != [] %}\n and lower(type) in {{ \"('\" ~ (var('klaviyo__eligible_attribution_events') | join(\"', '\")) ~ \"')\" }}\n {% endif %}\n\n -- only grab the events for users who are in the new increment of orders\n {% if is_incremental() %}\n and lower(person_email) in (select distinct lower(email) from orders)\n {% endif %}\n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and {{ dbt.datediff('events.occurred_at', 'orders.created_timestamp', 'hour') }} <= (\n case when events.type like '%sms%' then {{ var('klaviyo__sms_attribution_lookback') }}\n else {{ var('klaviyo__email_attribution_lookback') }} end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n {{ dbt_utils.star(from=ref('shopify__orders'), except=['source_relation']) }},\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n {{ dbt_utils.generate_surrogate_key(['order_id', 'source_relation']) }} as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__orders_attribution.sql", "original_file_path": "models/shopify_holistic_reporting__orders_attribution.sql", "name": "shopify_holistic_reporting__orders_attribution", "alias": "shopify_holistic_reporting__orders_attribution", "checksum": {"name": "sha256", "checksum": "ca9ca8a2f8194fa4b238b02db078d3e4f48b469a030f751d0d7c9a1eb4cc41dc"}, "tags": [], "refs": [["shopify__orders"], ["klaviyo__events"], ["shopify__orders"]], "sources": [], "metrics": [], "description": "Table of Shopify orders, enriched with a last-touch attribution model associating orders (as conversions) to campaigns or flows in Klaviyo. \nBy default, the package performs attribution [in line with Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005248128). It considers email opens and clicks, and SMS opens as the events eligible to be credited with orders. This attribution-eligibility can be configured by the `klaviyo__eligible_attribution_events` variable. \nSimilar to the Klaviyo app, the package by default considers the conversion period/lookback window for email events to be 120 hours (5 days) and 24 hours for SMS events. These can be configured through the `klaviyo__email_attribution_lookback` and `klaviyo__sms_attribution_lookback` variables, respectively (in integer-hours).\nRefer to the Klaviyo package [README](https://github.com/fivetran/dbt_klaviyo#attribution-lookback-window) for more details.\nMaterialized incrementally by default.\n", "columns": {"app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_buyer_accepted_marketing": {"name": "has_buyer_accepted_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_timestamp": {"name": "cancelled_timestamp", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_timestamp": {"name": "closed_timestamp", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_taxes_included": {"name": "has_taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_test_order": {"name": "is_test_order", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_timestamp": {"name": "updated_timestamp", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "line_item_count": {"name": "line_item_count", "description": "Number of line items included in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_order_seq_number": {"name": "customer_order_seq_number", "description": "The sequential number of the order as it relates to the customer", "meta": {}, "data_type": null, "quote": null, "tags": []}, "new_vs_repeat": {"name": "new_vs_repeat", "description": "Whether the order was a new or repeat order for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_cost": {"name": "shipping_cost", "description": "The shipping cost of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_amount": {"name": "order_adjustment_amount", "description": "Total adjustment amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjustment_tax_amount": {"name": "order_adjustment_tax_amount", "description": "Total tax applied to the adjustment on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_subtotal": {"name": "refund_subtotal", "description": "Total refund amount applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_total_tax": {"name": "refund_total_tax", "description": "Total tax applied to the refund on the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_adjusted_total": {"name": "order_adjusted_total", "description": "Order total adjusted for refunds and other adjustments. The calculation used for this field is as follows: total price listed on the original order (including shipping costs and discounts) + adjustments + adjustments tax - total refunds - refunds tax The order_adjusted_total will equate to the total sales - refunds listed within the transactions table for the order (after currency exchange).\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "Field representing the index of the order line in relation to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The pre tax price of the order line.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "checkout_token": {"name": "checkout_token", "description": "The checkout token applied to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "The Klaviyo campaign that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "The Klaviyo flow that the order has been attributed to by the package.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed Klaviyo flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the attributed Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed Klaviyo flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of Klaviyo campaign that the order is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_id": {"name": "last_touch_event_id", "description": "Unique Klaviyo event id of the interaction the customer had with the campaign or flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_occurred_at": {"name": "last_touch_event_occurred_at", "description": "Timestamp of when the customer interacted with the attributed campaign/flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_event_type": {"name": "last_touch_event_type", "description": "Type of interaction that the customer had with the campaign or flow. Will be one of the event types specified by the `klaviyo__eligible_attribution_events` variable. By default, this is just email opens, email clicks, and sms opens.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_name": {"name": "last_touch_integration_name", "description": "Name of the platform that tracked the campaign/flow interaction (either Klaviyo, the API, or another integration).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_integration_category": {"name": "last_touch_integration_category", "description": "Use-case category of the platform that sent the campaign/flow interaction event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where Klaviyo campaign/flow data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_campaign": {"name": "count_interactions_with_campaign", "description": "The count of distinct attributable events the customer had with the campaign throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_interactions_with_flow": {"name": "count_interactions_with_flow", "description": "The count of distinct attributable events the customer had with the flow throughout the attribution window.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__orders_attribution.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "incremental", "schema": "shopify_holistic", "unique_key": "unique_order_key", "partition_by": null, "incremental_strategy": "delete+insert", "file_format": "delta"}, "created_at": 1671482451.363206, "compiled_code": "\n\nwith orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__orders\"\n\n -- just grab new + newly updated orders\n \n where updated_timestamp >= (select max(updated_timestamp) from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\")\n \n\n), events as (\n\n select \n *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\n\n where \n coalesce(last_touch_campaign_id, last_touch_flow_id) is not null\n \n and lower(type) in ('opened email', 'clicked email', 'clicked sms')\n \n\n -- only grab the events for users who are in the new increment of orders\n \n and lower(person_email) in (select distinct lower(email) from orders)\n \n\n), join_orders_w_events as (\n\n select \n orders.*,\n events.last_touch_campaign_id,\n events.last_touch_flow_id,\n events.variation_id as last_touch_variation_id,\n events.campaign_name as last_touch_campaign_name,\n events.campaign_subject_line as last_touch_campaign_subject_line,\n events.flow_name as last_touch_flow_name,\n events.campaign_type as last_touch_campaign_type,\n events.event_id as last_touch_event_id,\n events.occurred_at as last_touch_event_occurred_at,\n events.type as last_touch_event_type,\n events.integration_name as last_touch_integration_name,\n events.integration_category as last_touch_integration_category,\n events.source_relation as klaviyo_source_relation\n\n from orders \n left join events on \n lower(orders.email) = lower(events.person_email)\n and \n (\n ((orders.created_timestamp)::date - (events.occurred_at)::date)\n * 24 + date_part('hour', (orders.created_timestamp)::timestamp) - date_part('hour', (events.occurred_at)::timestamp))\n <= (\n case when events.type like '%sms%' then 24\n else 120 end)\n and orders.created_timestamp > events.occurred_at\n\n), order_events as (\n\n select\n *,\n row_number() over (partition by order_id order by last_touch_event_occurred_at desc) as event_index,\n\n -- the order was made after X interactions with campaign/flow\n count(last_touch_event_id) over (partition by order_id, last_touch_campaign_id) as count_interactions_with_campaign,\n count(last_touch_event_id) over (partition by order_id, last_touch_flow_id) as count_interactions_with_flow\n\n\n from join_orders_w_events\n\n), last_touches as (\n\n select \n \"order_id\",\n \"processed_timestamp\",\n \"updated_timestamp\",\n \"user_id\",\n \"total_discounts\",\n \"total_line_items_price\",\n \"total_price\",\n \"total_tax\",\n \"source_name\",\n \"subtotal_price\",\n \"has_taxes_included\",\n \"total_weight\",\n \"landing_site_base_url\",\n \"location_id\",\n \"name\",\n \"note\",\n \"number\",\n \"order_number\",\n \"cancel_reason\",\n \"cancelled_timestamp\",\n \"cart_token\",\n \"checkout_token\",\n \"closed_timestamp\",\n \"created_timestamp\",\n \"currency\",\n \"customer_id\",\n \"email\",\n \"financial_status\",\n \"fulfillment_status\",\n \"processing_method\",\n \"referring_site\",\n \"billing_address_address_1\",\n \"billing_address_address_2\",\n \"billing_address_city\",\n \"billing_address_company\",\n \"billing_address_country\",\n \"billing_address_country_code\",\n \"billing_address_first_name\",\n \"billing_address_last_name\",\n \"billing_address_latitude\",\n \"billing_address_longitude\",\n \"billing_address_name\",\n \"billing_address_phone\",\n \"billing_address_province\",\n \"billing_address_province_code\",\n \"billing_address_zip\",\n \"browser_ip\",\n \"has_buyer_accepted_marketing\",\n \"total_shipping_price_set\",\n \"shipping_address_address_1\",\n \"shipping_address_address_2\",\n \"shipping_address_city\",\n \"shipping_address_company\",\n \"shipping_address_country\",\n \"shipping_address_country_code\",\n \"shipping_address_first_name\",\n \"shipping_address_last_name\",\n \"shipping_address_latitude\",\n \"shipping_address_longitude\",\n \"shipping_address_name\",\n \"shipping_address_phone\",\n \"shipping_address_province\",\n \"shipping_address_province_code\",\n \"shipping_address_zip\",\n \"is_test_order\",\n \"token\",\n \"_fivetran_synced\",\n \"shipping_cost\",\n \"order_adjustment_amount\",\n \"order_adjustment_tax_amount\",\n \"refund_subtotal\",\n \"refund_total_tax\",\n \"order_adjusted_total\",\n \"line_item_count\",\n \"customer_order_seq_number\",\n \"new_vs_repeat\",\n last_touch_campaign_id is not null or last_touch_flow_id is not null as is_attributed,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_variation_id,\n last_touch_campaign_name,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n last_touch_flow_name,\n case when last_touch_campaign_id is not null then count_interactions_with_campaign else null end as count_interactions_with_campaign, -- will be null if it's associated with a flow\n count_interactions_with_flow, -- will be null if it's associated with a campaign\n last_touch_event_id,\n last_touch_event_occurred_at,\n last_touch_event_type,\n last_touch_integration_name,\n last_touch_integration_category,\n source_relation as shopify_source_relation,\n klaviyo_source_relation,\n \n \nmd5(cast(coalesce(cast(order_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(source_relation as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT)) as unique_order_key\n\n from order_events\n where event_index = 1\n)\n\nselect *\nfrom last_touches", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\""}, "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt_utils.star"], "nodes": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "shopify_holistic_reporting__daily_customer_metrics"], "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "raw_code": "with shopify_daily as (\n\n select *\n from {{ ref('int__daily_shopify_customer_orders') }}\n\n), klaviyo_daily as (\n\n select *\n from {{ ref('int__daily_klaviyo_user_metrics') }}\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n {{ dbt_utils.star(from=ref('int__daily_shopify_customer_orders'), relation_alias='shopify_daily', prefix='shopify_',\n except=['source_relation','date_day', 'email', 'last_touch_variation_id', 'last_touch_flow_name', 'last_touch_campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'last_touch_campaign_subject_line', 'last_touch_campaign_type']) }},\n shopify_daily.source_relation as shopify_source_relation,\n\n {{ dbt_utils.star(from=ref('int__daily_klaviyo_user_metrics'), relation_alias='klaviyo_daily', prefix='klaviyo_',\n except=['source_relation','date_day', 'email', 'variation_id', 'flow_name', 'campaign_name', 'last_touch_flow_id', 'last_touch_campaign_id', 'campaign_subject_line', 'campaign_type']) }},\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "shopify_holistic_reporting__daily_customer_metrics.sql", "original_file_path": "models/shopify_holistic_reporting__daily_customer_metrics.sql", "name": "shopify_holistic_reporting__daily_customer_metrics", "alias": "shopify_holistic_reporting__daily_customer_metrics", "checksum": {"name": "sha256", "checksum": "971dcdccf88ae613b19a18bff1ebb515f480d4fd5fb1c4ae1c8cfb3c0d07072d"}, "tags": [], "refs": [["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"], ["int__daily_shopify_customer_orders"], ["int__daily_klaviyo_user_metrics"]], "sources": [], "metrics": [], "description": "Table that aggregates Shopify and Klaviyo metrics to the day-customer-campaign or day-customer-flow grain (but note that if a user interacts with 2 different variations of a flow/campaign somehow, they will have 2 records). Also note that non-attributed (to Klaviyo at least) orders and interactions (someone with null campaign_id/flow_id) are included in this table. \nFor **Klaviyo**: **Counts** of the instances of the events, as well as **sums** of the numeric value associated with events (i.e. revenue) will be pivoted out into columns, as configured by the `klaviyo__count_metrics` and `klaviyo__sum_revenue_metrics` variables, respectively. See the dbt_project.yml file for the default metrics used. These columns will be prefixed with `count_` and `sum_revenue_`.\nNote that 0-activity days will not appear. \n", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_first_event_at": {"name": "klaviyo_first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_last_event_at": {"name": "klaviyo_last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_source_relation": {"name": "shopify_source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "klaviyo_source_relation": {"name": "klaviyo_source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_orders": {"name": "shopify_total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_price": {"name": "shopify_total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_line_items": {"name": "shopify_count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_line_items_price": {"name": "shopify_total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_discounts": {"name": "shopify_total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_tax": {"name": "shopify_total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_shipping_cost": {"name": "shopify_total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_subtotal": {"name": "shopify_total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_refund_tax": {"name": "shopify_total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_cancelled_orders": {"name": "shopify_count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_products": {"name": "shopify_count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_count_product_variants": {"name": "shopify_count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_sum_quantity": {"name": "shopify_sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_amount": {"name": "shopify_total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shopify_total_order_adjustment_tax_amount": {"name": "shopify_total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting__daily_customer_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "table", "schema": "shopify_holistic"}, "created_at": 1671482451.348053, "compiled_code": "with shopify_daily as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__daily_shopify_customer_orders\"\n\n), klaviyo_daily as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__daily_klaviyo_user_metrics\"\n\n), combine_histories as (\n\n select \n coalesce(shopify_daily.date_day, klaviyo_daily.date_day) as date_day,\n coalesce(shopify_daily.email, klaviyo_daily.email) as email,\n\n -- when the below is null, these are unattributed actions\n coalesce(shopify_daily.last_touch_campaign_id, klaviyo_daily.last_touch_campaign_id) as campaign_id,\n coalesce(shopify_daily.last_touch_flow_id, klaviyo_daily.last_touch_flow_id) as flow_id,\n coalesce(shopify_daily.last_touch_campaign_name, klaviyo_daily.campaign_name) as campaign_name,\n coalesce(shopify_daily.last_touch_flow_name, klaviyo_daily.flow_name) as flow_name,\n coalesce(shopify_daily.last_touch_variation_id, klaviyo_daily.variation_id) as variation_id,\n coalesce(shopify_daily.last_touch_campaign_subject_line, klaviyo_daily.campaign_subject_line) as campaign_subject_line,\n coalesce(shopify_daily.last_touch_campaign_type, klaviyo_daily.campaign_type) as campaign_type,\n \n shopify_daily.\"total_orders\" as \"shopify_total_orders\",\n shopify_daily.\"total_price\" as \"shopify_total_price\",\n shopify_daily.\"count_line_items\" as \"shopify_count_line_items\",\n shopify_daily.\"total_line_items_price\" as \"shopify_total_line_items_price\",\n shopify_daily.\"total_discounts\" as \"shopify_total_discounts\",\n shopify_daily.\"total_tax\" as \"shopify_total_tax\",\n shopify_daily.\"total_shipping_cost\" as \"shopify_total_shipping_cost\",\n shopify_daily.\"total_refund_subtotal\" as \"shopify_total_refund_subtotal\",\n shopify_daily.\"total_refund_tax\" as \"shopify_total_refund_tax\",\n shopify_daily.\"count_cancelled_orders\" as \"shopify_count_cancelled_orders\",\n shopify_daily.\"count_products\" as \"shopify_count_products\",\n shopify_daily.\"count_product_variants\" as \"shopify_count_product_variants\",\n shopify_daily.\"sum_quantity\" as \"shopify_sum_quantity\",\n shopify_daily.\"total_order_adjustment_amount\" as \"shopify_total_order_adjustment_amount\",\n shopify_daily.\"total_order_adjustment_tax_amount\" as \"shopify_total_order_adjustment_tax_amount\",\n shopify_daily.source_relation as shopify_source_relation,\n\n klaviyo_daily.\"first_event_at\" as \"klaviyo_first_event_at\",\n klaviyo_daily.\"last_event_at\" as \"klaviyo_last_event_at\",\n klaviyo_daily.\"sum_revenue_refunded_order\" as \"klaviyo_sum_revenue_refunded_order\",\n klaviyo_daily.\"sum_revenue_placed_order\" as \"klaviyo_sum_revenue_placed_order\",\n klaviyo_daily.\"sum_revenue_ordered_product\" as \"klaviyo_sum_revenue_ordered_product\",\n klaviyo_daily.\"sum_revenue_checkout_started\" as \"klaviyo_sum_revenue_checkout_started\",\n klaviyo_daily.\"sum_revenue_cancelled_order\" as \"klaviyo_sum_revenue_cancelled_order\",\n klaviyo_daily.\"count_active_on_site\" as \"klaviyo_count_active_on_site\",\n klaviyo_daily.\"count_viewed_product\" as \"klaviyo_count_viewed_product\",\n klaviyo_daily.\"count_ordered_product\" as \"klaviyo_count_ordered_product\",\n klaviyo_daily.\"count_placed_order\" as \"klaviyo_count_placed_order\",\n klaviyo_daily.\"count_refunded_order\" as \"klaviyo_count_refunded_order\",\n klaviyo_daily.\"count_received_email\" as \"klaviyo_count_received_email\",\n klaviyo_daily.\"count_clicked_email\" as \"klaviyo_count_clicked_email\",\n klaviyo_daily.\"count_opened_email\" as \"klaviyo_count_opened_email\",\n klaviyo_daily.\"count_marked_email_as_spam\" as \"klaviyo_count_marked_email_as_spam\",\n klaviyo_daily.\"count_unsubscribed\" as \"klaviyo_count_unsubscribed\",\n klaviyo_daily.\"count_received_sms\" as \"klaviyo_count_received_sms\",\n klaviyo_daily.\"count_clicked_sms\" as \"klaviyo_count_clicked_sms\",\n klaviyo_daily.\"count_sent_sms\" as \"klaviyo_count_sent_sms\",\n klaviyo_daily.\"count_unsubscribed_from_sms\" as \"klaviyo_count_unsubscribed_from_sms\",\n klaviyo_daily.source_relation as klaviyo_source_relation\n\n from shopify_daily\n full outer join klaviyo_daily\n on lower(shopify_daily.email) = lower(klaviyo_daily.email)\n and shopify_daily.date_day = klaviyo_daily.date_day\n)\n\nselect *\nfrom combine_histories", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\""}, "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.enabled_vars", "macro.dbt_utils.group_by"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_shopify_customer_orders"], "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "raw_code": "with orders as (\n\n select *\n from {{ ref('shopify_holistic_reporting__orders_attribution') }}\n\n), order_lines as (\n\n select *\n from {{ ref('shopify__order_lines') }}\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( {{ dbt.date_trunc('day', 'created_timestamp') }} as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n {% if fivetran_utils.enabled_vars(vars=[\"shopify__using_order_line_refund\", \"shopify__using_refund\"]) %}\n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n {% endif %}\n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n {% if var('shopify__using_order_adjustment', true) %}\n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n {% endif %}\n \n\n from join_orders\n {{ dbt_utils.group_by(n=10)}}\n)\n\nselect *\nfrom daily_order_metrics", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_shopify_customer_orders.sql", "original_file_path": "models/intermediate/int__daily_shopify_customer_orders.sql", "name": "int__daily_shopify_customer_orders", "alias": "int__daily_shopify_customer_orders", "checksum": {"name": "sha256", "checksum": "b65804247d30fd6de43e7664b88ca4bec4f8dd66670d3e11f974348f7e48d361"}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"], ["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_name": {"name": "last_touch_campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_name": {"name": "last_touch_flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_variation_id": {"name": "last_touch_variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_subject_line": {"name": "last_touch_campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_type": {"name": "last_touch_campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Shopify data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_orders": {"name": "total_orders", "description": "Total number of orders the customer placed on this day, associated with this campaign or flow. Includes canceled orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "Total adjusted price the customer paid on this day, associated with this campaign or flow, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_line_items": {"name": "count_line_items", "description": "The count of order line items the customer placed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The sum of discounts applied to the customer's orders, in shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of taxes paid by the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_cost": {"name": "total_shipping_cost", "description": "The sum of shipping costs paid.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_subtotal": {"name": "total_refund_subtotal", "description": "Total amount refunded by the customer. Note that that `date_day` will be when the order was created, not refunded.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_refund_tax": {"name": "total_refund_tax", "description": "Total tax applied to the customer's refunds.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_cancelled_orders": {"name": "count_cancelled_orders", "description": "The count of orders that the customer made on this day and canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_products": {"name": "count_products", "description": "The count of distinct products (based on distinct `product_ids`) that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_product_variants": {"name": "count_product_variants", "description": "The count of distinct products variants that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sum_quantity": {"name": "sum_quantity", "description": "The total quantity of items that the customer purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_amount": {"name": "total_order_adjustment_amount", "description": "The total amount of adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_order_adjustment_tax_amount": {"name": "total_order_adjustment_tax_amount", "description": "The total amount of taxes applied to adjustments made to the customer's orders.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_shopify_customer_orders.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1671482451.3796449, "compiled_code": "with orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n\n), order_lines as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__order_lines\"\n\n), order_line_metrics as (\n\n select \n order_id,\n source_relation,\n count(distinct product_id) as count_products,\n count(distinct product_id || '-' || variant_id) as count_product_variants,\n sum(quantity) as sum_quantity\n \n from order_lines\n group by 1,2\n\n), join_orders as (\n\n select \n orders.*,\n order_line_metrics.count_products,\n order_line_metrics.count_product_variants,\n order_line_metrics.sum_quantity\n\n from orders \n left join order_line_metrics\n on orders.order_id = order_line_metrics.order_id\n and orders.shopify_source_relation = order_line_metrics.source_relation\n\n), daily_order_metrics as (\n\n select\n cast( date_trunc('day', created_timestamp) as date) as date_day,\n email,\n last_touch_campaign_id,\n last_touch_flow_id,\n last_touch_campaign_name,\n last_touch_flow_name,\n last_touch_variation_id,\n last_touch_campaign_subject_line,\n last_touch_campaign_type,\n shopify_source_relation as source_relation,\n\n count(distinct order_id) as total_orders,\n sum(order_adjusted_total) as total_price,\n\n sum(line_item_count) as count_line_items,\n sum(total_line_items_price) as total_line_items_price,\n \n\n sum(total_discounts) as total_discounts,\n sum(total_tax) as total_tax,\n sum(shipping_cost) as total_shipping_cost,\n\n \n sum(refund_subtotal) as total_refund_subtotal,\n sum(refund_total_tax) as total_refund_tax,\n \n\n sum(case when cancelled_timestamp is not null then 1 else 0 end) as count_cancelled_orders,\n sum(count_products) as count_products,\n sum(count_product_variants) as count_product_variants,\n sum(sum_quantity) as sum_quantity\n\n \n , sum(order_adjustment_amount) as total_order_adjustment_amount\n , sum(order_adjustment_tax_amount) as total_order_adjustment_tax_amount\n \n \n\n from join_orders\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\nselect *\nfrom daily_order_metrics", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__daily_shopify_customer_orders\""}, "model.shopify_holistic_reporting.int__shopify_customer_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.type_string", "macro.fivetran_utils.string_agg", "macro.fivetran_utils.max_bool"], "nodes": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__shopify_customer_rollup"], "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup", "raw_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from {{ ref('shopify__customers') }}\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"cast(customer_id as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as customer_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n {{ fivetran_utils.max_bool(\"has_accepted_marketing\") }} as has_accepted_marketing,\n {{ fivetran_utils.max_bool(\"case when customer_index = 1 then is_tax_exempt else null end\") }} as is_tax_exempt, -- since this changes every year\n {{ fivetran_utils.max_bool(\"is_verified_email\") }} as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n {% set cols = adapter.get_columns_in_relation(ref('shopify__customers')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'customer_id', 'phone', 'first_name', 'last_name', 'created_timestamp', 'first_order_timestamp', 'most_recent_order_timestamp',\n 'updated_timestamp', 'lifetime_total_spent', 'lifetime_total_refunded', 'lifetime_total_amount', 'lifetime_count_orders', 'average_order_value', 'has_accepted_marketing',\n 'is_tax_exempt', 'is_verified_email', 'default_address_id', 'account_state'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when customer_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__shopify_customer_rollup.sql", "original_file_path": "models/intermediate/int__shopify_customer_rollup.sql", "name": "int__shopify_customer_rollup", "alias": "int__shopify_customer_rollup", "checksum": {"name": "sha256", "checksum": "d37acd343225ac3650b815e17b114111489d47684a4f12cfec198eaf042b9c0f"}, "tags": [], "refs": [["shopify__customers"], ["shopify__customers"]], "sources": [], "metrics": [], "description": "Table rolling up shopify customer accounts to the email level. In theory, these should be 1:1, but under certain circumstances (ie bots) one email can be associated with multiple customer_ids.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "has_accepted_marketing": {"name": "has_accepted_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_shopify_account_made_at": {"name": "first_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_shopify_account_made_at": {"name": "last_shopify_account_made_at", "description": "The date and time when the customer account first associated with this email was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "The customer's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_ids": {"name": "customer_ids", "description": "A comma-separated aggregated list of Shopify IDs for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_count_orders": {"name": "lifetime_count_orders", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers (E.164 format) for this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "account_state": {"name": "account_state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_tax_exempt": {"name": "is_tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_order_at": {"name": "first_order_at", "description": "The timestamp the customer completed their first order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_order_at": {"name": "last_order_at", "description": "The timestamp the customer completed their most recent order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "average_order_value": {"name": "average_order_value", "description": "The average order value for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_spent": {"name": "lifetime_total_spent", "description": "The total amount of money that the customer has spent on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_refunded": {"name": "lifetime_total_refunded", "description": "The total amount of money that the customer has been refunded on orders across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "lifetime_total_amount": {"name": "lifetime_total_amount", "description": "The total amount of money (minus refunds) that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_verified_email": {"name": "is_verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__shopify_customer_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1671482451.383289, "compiled_code": "with customers as (\n\n select \n *,\n row_number() over(partition by email order by created_timestamp desc) as customer_index\n\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customers\"\n\n where email is not null -- nonsensical to include any null emails in this package\n\n), aggregate_customers as (\n\n select\n lower(email) as email,\n source_relation,\n \n string_agg(cast(customer_id as TEXT), ', ')\n\n as customer_ids,\n \n string_agg(distinct cast(phone as TEXT), ', ')\n\n as phone_numbers,\n\n max(case when customer_index = 1 then first_name || ' ' || last_name else null end) as full_name,\n\n min(created_timestamp) as first_shopify_account_made_at,\n max(created_timestamp) as last_shopify_account_made_at,\n min(first_order_timestamp) as first_order_at,\n max(most_recent_order_timestamp) as last_order_at,\n max(updated_timestamp) as last_updated_at,\n\n -- sum across accounts\n sum(lifetime_total_spent) as lifetime_total_spent,\n sum(lifetime_total_refunded) as lifetime_total_refunded,\n sum(lifetime_total_amount) as lifetime_total_amount,\n sum(lifetime_count_orders) as lifetime_count_orders,\n case \n when sum(lifetime_count_orders) = 0 then 0\n else sum(lifetime_total_spent) / sum(lifetime_count_orders) end as average_order_value,\n\n -- take true if ever given for boolean fields\n \n\n bool_or( has_accepted_marketing )\n\n as has_accepted_marketing,\n \n\n bool_or( case when customer_index = 1 then is_tax_exempt else null end )\n\n as is_tax_exempt, -- since this changes every year\n \n\n bool_or( is_verified_email )\n\n as is_verified_email,\n\n -- other stuff\n max(case when customer_index = 1 then default_address_id else null end) as default_address_id,\n max(case when customer_index = 1 then account_state else null end) as account_state\n\n -- ok let's get any custom passthrough columns! might want to put all max(Case when)'s in here....\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n from customers \n\n group by 1,2\n\n)\n\nselect *\nfrom aggregate_customers", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__shopify_customer_rollup\""}, "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.dbt.date_trunc", "macro.fivetran_utils.try_cast", "macro.dbt_utils.group_by"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__daily_klaviyo_user_metrics"], "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "raw_code": "with events as (\n\n select *\n from {{ ref('klaviyo__events') }}\n\n), pivot_out_events as (\n \n select \n cast( {{ dbt.date_trunc('day', 'occurred_at') }} as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n {% for rm in var('klaviyo__sum_revenue_metrics') %}\n , sum(case when lower(type) = '{{ rm | lower }}' then \n coalesce({{ fivetran_utils.try_cast(\"numeric_value\", \"numeric\") }}, 0)\n else 0 end) \n as {{ 'sum_revenue_' ~ rm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n -- count up the number of instances of each metric\n {% for cm in var('klaviyo__count_metrics') %}\n , sum(case when lower(type) = '{{ cm | lower }}' then 1 else 0 end) \n as {{ 'count_' ~ cm | replace(' ', '_') | replace('(', '') | replace(')', '') | lower }} -- removing special characters that I have seen in different integration events\n {% endfor %}\n\n from events\n {{ dbt_utils.group_by(n=10) }}\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__daily_klaviyo_user_metrics.sql", "original_file_path": "models/intermediate/int__daily_klaviyo_user_metrics.sql", "name": "int__daily_klaviyo_user_metrics", "alias": "int__daily_klaviyo_user_metrics", "checksum": {"name": "sha256", "checksum": "a44be436c9e300571568f40fc3f1989ec67c7df9889088b39ca651268761e357"}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {"date_day": {"name": "date_day", "description": "Day on which the customer performed these activities.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "Email address of the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_campaign_id": {"name": "last_touch_campaign_id", "description": "Foreign key referencing the CAMPAIGN attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_touch_flow_id": {"name": "last_touch_flow_id", "description": "Foreign key referencing the FLOW attributed with these metrics (by the package's attribution model).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "Name of the attributed campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_name": {"name": "flow_name", "description": "Name of the attributed flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variation_id": {"name": "variation_id", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of the first interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of the last interaction between this campaign/flow and a person on this day.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_subject_line": {"name": "campaign_subject_line", "description": "Email subject line of the Klaviyo campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_relation": {"name": "source_relation", "description": "The source where this Klaviyo data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__daily_klaviyo_user_metrics.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1671482451.375852, "compiled_code": "with events as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\n\n), pivot_out_events as (\n \n select \n cast( date_trunc('day', occurred_at) as date) as date_day,\n person_email as email,\n last_touch_campaign_id,\n last_touch_flow_id,\n campaign_name,\n flow_name,\n variation_id,\n campaign_subject_line,\n campaign_type,\n source_relation,\n min(occurred_at) as first_event_at,\n max(occurred_at) as last_event_at\n\n -- sum up the numeric value associated with events (most likely will mean revenue)\n \n , sum(case when lower(type) = 'refunded order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'checkout started' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_checkout_started -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'cancelled order' then \n coalesce(\n case\n when replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast(numeric_value as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::numeric\n\n\n\n, 0)\n else 0 end) \n as sum_revenue_cancelled_order -- removing special characters that I have seen in different integration events\n \n\n -- count up the number of instances of each metric\n \n , sum(case when lower(type) = 'active on site' then 1 else 0 end) \n as count_active_on_site -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'viewed product' then 1 else 0 end) \n as count_viewed_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'ordered product' then 1 else 0 end) \n as count_ordered_product -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'placed order' then 1 else 0 end) \n as count_placed_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'refunded order' then 1 else 0 end) \n as count_refunded_order -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received email' then 1 else 0 end) \n as count_received_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked email' then 1 else 0 end) \n as count_clicked_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'opened email' then 1 else 0 end) \n as count_opened_email -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'marked email as spam' then 1 else 0 end) \n as count_marked_email_as_spam -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed' then 1 else 0 end) \n as count_unsubscribed -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'received sms' then 1 else 0 end) \n as count_received_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'clicked sms' then 1 else 0 end) \n as count_clicked_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'sent sms' then 1 else 0 end) \n as count_sent_sms -- removing special characters that I have seen in different integration events\n \n , sum(case when lower(type) = 'unsubscribed from sms' then 1 else 0 end) \n as count_unsubscribed_from_sms -- removing special characters that I have seen in different integration events\n \n\n from events\n group by 1,2,3,4,5,6,7,8,9,10\n)\n\n-- the grain will be person-flow-campaign-variation-day\nselect *\nfrom pivot_out_events", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__daily_klaviyo_user_metrics\""}, "model.shopify_holistic_reporting.int__klaviyo_person_rollup": {"compiled": true, "resource_type": "model", "depends_on": {"macros": ["macro.fivetran_utils.string_agg", "macro.dbt.type_string"], "nodes": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "shopify_holistic", "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_shopify_holistic", "fqn": ["shopify_holistic_reporting", "intermediate", "int__klaviyo_person_rollup"], "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "raw_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from {{ ref('klaviyo__persons') }}\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n {{ fivetran_utils.string_agg(\"person_id\", \"', '\") }} as person_ids,\n {{ fivetran_utils.string_agg(\"distinct cast(phone_number as \" ~ dbt.type_string() ~ \")\", \"', '\") }} as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n {% set cols = adapter.get_columns_in_relation(ref('klaviyo__persons')) %}\n {% set except_cols = ['_fivetran_synced', 'email', 'source_relation', 'person_id', 'phone_number', 'full_name', 'created_at', 'updated_at', 'count_total_campaigns', 'count_total_flows',\n 'first_event_at', 'last_event_at', 'first_campaign_touch_at', 'last_campaign_touch_at', 'first_flow_touch_at', 'last_flow_touch_at'] %}\n {% for col in cols %}\n {% if col.column|lower not in except_cols %}\n , max(case when person_index = 1 then {{ col.column }} else null end) as {{ col.column }}\n {% endif %}\n {% endfor %}\n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "intermediate/int__klaviyo_person_rollup.sql", "original_file_path": "models/intermediate/int__klaviyo_person_rollup.sql", "name": "int__klaviyo_person_rollup", "alias": "int__klaviyo_person_rollup", "checksum": {"name": "sha256", "checksum": "a690c8461137c9efef7723af8c9b1c595075381a9e0cebff45f27c2e73425c7c"}, "tags": [], "refs": [["klaviyo__persons"], ["klaviyo__persons"]], "sources": [], "metrics": [], "description": "Table rolling up Klaviyo person accounts to the email level. In theory, these should certainly be 1:1, but under certain circumstances emails can be sent with multiple person_ids from the Klaviyo API.\n", "columns": {"source_relation": {"name": "source_relation", "description": "The source where this data was pulled from. If you are making use of the `union_schemas` variable, this will be the source schema. If you are making use of the `union_databases` variable, this will be the source database. If you are not unioning together multiple sources, this will be an empty string.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_ids": {"name": "person_ids", "description": "A comma-separated aggregated list of Klaviyo IDs for the person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_numbers": {"name": "phone_numbers", "description": "Comma separated aggregated list of unique phone numbers for this person.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "full_name": {"name": "full_name", "description": "Person's full name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_klaviyo_account_made_at": {"name": "first_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_klaviyo_account_made_at": {"name": "last_klaviyo_account_made_at", "description": "Timestamp of when the person's profile was last created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_updated_at": {"name": "last_updated_at", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_event_at": {"name": "first_event_at", "description": "Timestamp of when the user first triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_event_at": {"name": "last_event_at", "description": "Timestamp of when the user last triggered an event (not limited to campaign and flow interactions).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_campaign_touch_at": {"name": "first_campaign_touch_at", "description": "Timestamp of when the user first interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_campaign_touch_at": {"name": "last_campaign_touch_at", "description": "Timestamp of when the user last interacted with a campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_flow_touch_at": {"name": "first_flow_touch_at", "description": "Timestamp of when the user first interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_flow_touch_at": {"name": "last_flow_touch_at", "description": "Timestamp of when the user last interacted with a flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_campaigns": {"name": "count_total_campaigns", "description": "Count of the number of campaigns this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "count_total_flows": {"name": "count_total_flows", "description": "Count of the number of flows this person has interacted with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": "shopify_holistic_reporting://models/intermediate/int_shopify_holistic_reporting.yml", "compiled_path": "target/compiled/shopify_holistic_reporting/models/intermediate/int__klaviyo_person_rollup.sql", "build_path": null, "deferred": false, "unrendered_config": {"materialized": "view", "schema": "shopify_holistic"}, "created_at": 1671482451.387386, "compiled_code": "with persons as (\n\n select\n *,\n row_number() over (partition by email order by created_at desc) as person_index\n \n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\"\n where email is not null -- should never be the case but just in case\n\n), aggregate_persons as (\n\n select \n lower(email) as email,\n source_relation,\n \n string_agg(person_id, ', ')\n\n as person_ids,\n \n string_agg(distinct cast(phone_number as TEXT), ', ')\n\n as phone_numbers,\n max( case when person_index = 1 then full_name else null end) as full_name,\n \n min(created_at) as first_klaviyo_account_made_at,\n max(created_at) as last_klaviyo_account_made_at,\n max(updated_at) as last_updated_at,\n min(first_event_at) as first_event_at,\n max(last_event_at) as last_event_at,\n min(first_campaign_touch_at) as first_campaign_touch_at,\n max(last_campaign_touch_at) as last_campaign_touch_at,\n min(first_flow_touch_at) as first_flow_touch_at,\n max(last_flow_touch_at) as last_flow_touch_at,\n\n sum(count_total_campaigns) as count_total_campaigns,\n sum(count_total_flows) as count_total_flows\n\n\n \n \n \n \n \n \n , max(case when person_index = 1 then address_1 else null end) as address_1\n \n \n \n , max(case when person_index = 1 then address_2 else null end) as address_2\n \n \n \n , max(case when person_index = 1 then city else null end) as city\n \n \n \n , max(case when person_index = 1 then country else null end) as country\n \n \n \n , max(case when person_index = 1 then zip else null end) as zip\n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then latitude else null end) as latitude\n \n \n \n , max(case when person_index = 1 then longitude else null end) as longitude\n \n \n \n , max(case when person_index = 1 then organization else null end) as organization\n \n \n \n \n \n , max(case when person_index = 1 then region else null end) as region\n \n \n \n , max(case when person_index = 1 then timezone else null end) as timezone\n \n \n \n , max(case when person_index = 1 then title else null end) as title\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n , max(case when person_index = 1 then total_sum_revenue_refunded_order else null end) as total_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_refunded_order else null end) as organic_sum_revenue_refunded_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_placed_order else null end) as total_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_placed_order else null end) as organic_sum_revenue_placed_order\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_ordered_product else null end) as total_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_ordered_product else null end) as organic_sum_revenue_ordered_product\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_checkout_started else null end) as total_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_checkout_started else null end) as organic_sum_revenue_checkout_started\n \n \n \n , max(case when person_index = 1 then total_sum_revenue_cancelled_order else null end) as total_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then organic_sum_revenue_cancelled_order else null end) as organic_sum_revenue_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_active_on_site else null end) as total_count_active_on_site\n \n \n \n , max(case when person_index = 1 then total_count_viewed_product else null end) as total_count_viewed_product\n \n \n \n , max(case when person_index = 1 then total_count_ordered_product else null end) as total_count_ordered_product\n \n \n \n , max(case when person_index = 1 then total_count_placed_order else null end) as total_count_placed_order\n \n \n \n , max(case when person_index = 1 then total_count_refunded_order else null end) as total_count_refunded_order\n \n \n \n , max(case when person_index = 1 then total_count_cancelled_order else null end) as total_count_cancelled_order\n \n \n \n , max(case when person_index = 1 then total_count_fulfilled_order else null end) as total_count_fulfilled_order\n \n \n \n , max(case when person_index = 1 then total_count_received_email else null end) as total_count_received_email\n \n \n \n , max(case when person_index = 1 then total_count_clicked_email else null end) as total_count_clicked_email\n \n \n \n , max(case when person_index = 1 then total_count_opened_email else null end) as total_count_opened_email\n \n \n \n , max(case when person_index = 1 then total_count_bounced_email else null end) as total_count_bounced_email\n \n \n \n , max(case when person_index = 1 then total_count_marked_email_as_spam else null end) as total_count_marked_email_as_spam\n \n \n \n , max(case when person_index = 1 then total_count_dropped_email else null end) as total_count_dropped_email\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_list else null end) as total_count_subscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_to_list else null end) as total_count_unsubscribed_to_list\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed else null end) as total_count_unsubscribed\n \n \n \n , max(case when person_index = 1 then total_count_updated_email_preferences else null end) as total_count_updated_email_preferences\n \n \n \n , max(case when person_index = 1 then total_count_subscribed_to_back_in_stock else null end) as total_count_subscribed_to_back_in_stock\n \n \n \n , max(case when person_index = 1 then total_count_merged_profile else null end) as total_count_merged_profile\n \n \n \n , max(case when person_index = 1 then total_count_received_sms else null end) as total_count_received_sms\n \n \n \n , max(case when person_index = 1 then total_count_clicked_sms else null end) as total_count_clicked_sms\n \n \n \n , max(case when person_index = 1 then total_count_consented_to_receive_sms else null end) as total_count_consented_to_receive_sms\n \n \n \n , max(case when person_index = 1 then total_count_sent_sms else null end) as total_count_sent_sms\n \n \n \n , max(case when person_index = 1 then total_count_unsubscribed_from_sms else null end) as total_count_unsubscribed_from_sms\n \n \n \n , max(case when person_index = 1 then total_count_failed_to_deliver_sms else null end) as total_count_failed_to_deliver_sms\n \n \n\n from persons\n group by 1,2\n)\n\nselect *\nfrom aggregate_persons", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": "\"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"int__klaviyo_person_rollup\""}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__customer')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__customer"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__customer"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d00da641d0cc06ebef083c43ddfae4be"}, "created_at": 1671482451.056009, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__customer\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__customer"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line_refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line_refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line_refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_33b2f20dc9ea13a94a10a635383becf3"}, "created_at": 1671482451.06368, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_refund_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line_refund\"\n group by order_line_refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line_refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_line')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_line"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_line"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_d47b5ce640a9316320c17565339223ec"}, "created_at": 1671482451.0670469, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_line"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3f5201314db17428b709b11583cd0f7e"}, "created_at": 1671482451.070084, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_eb9efccfbdaff32f938da98287403a1d"}, "created_at": 1671482451.073209, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variant_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__product_variant')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__product_variant"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation", "alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__product_variant"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_84d19b85e52ebcaca03bcefe4191b60e"}, "created_at": 1671482451.076323, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variant_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__product_variant\"\n group by variant_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__product_variant"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__transaction')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__transaction"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__transaction"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_47aceb0b987e9f3279b4301c10167f92"}, "created_at": 1671482451.0794518, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__transaction\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__transaction"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["refund_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__refund')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__refund"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation", "alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__refund"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b6b83918833e84e9f886aa4151e4e659"}, "created_at": 1671482451.0821602, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n refund_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__refund\"\n group by refund_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__refund"}, "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_adjustment_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_shopify__order_adjustment')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_source.stg_shopify__order_adjustment"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_source", "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation"], "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207\") }}", "language": "sql", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "original_file_path": "models/stg_shopify.yml", "name": "dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation", "alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_shopify__order_adjustment"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_source/models/stg_shopify.yml/dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c4679057a756bef5907cd3799634207"}, "created_at": 1671482451.084984, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_adjustment_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_adjustment\"\n group by order_adjustment_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_shopify__order_adjustment"}, "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__campaign_campaign_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__campaign_campaign_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__campaign_campaign_id", "alias": "not_null_stg_klaviyo__campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__campaign_campaign_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.1409512, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_id", "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__campaign')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__campaign"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation", "alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__campaign"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_972961dcf9c5c4d5b8e43db578561c26"}, "created_at": 1671482451.142197, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__campaign\"\n group by campaign_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__campaign"}, "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__event_event_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__event_event_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__event_event_id", "alias": "not_null_stg_klaviyo__event_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__event_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.1454022, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__event')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__event"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__event"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8881439048410324e034ca08f1ef95fa"}, "created_at": 1671482451.146503, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__event\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__event"}, "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__flow_flow_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__flow_flow_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__flow_flow_id", "alias": "not_null_stg_klaviyo__flow_flow_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__flow_flow_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.149696, "compiled_code": "\n \n \n\n\n\nselect flow_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow\"\nwhere flow_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_id", "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation", "alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_007bf18d3b6d4b25aebcc986dc772270"}, "created_at": 1671482451.1507132, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__flow\"\n group by flow_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__flow"}, "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "integration_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__integration_integration_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__integration_integration_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__integration_integration_id", "alias": "not_null_stg_klaviyo__integration_integration_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__integration_integration_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.15357, "compiled_code": "\n \n \n\n\n\nselect integration_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration\"\nwhere integration_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "integration_id", "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["integration_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__integration')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__integration"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation", "alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__integration"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a7f288c54a3281da69034a0f95230596"}, "created_at": 1671482451.154561, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n integration_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__integration\"\n group by integration_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__integration"}, "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_person_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_person_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_person_id", "alias": "not_null_stg_klaviyo__person_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.1573288, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "unique_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "unique_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "unique_stg_klaviyo__person_email", "alias": "unique_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/unique_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1671482451.158583, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__person_email"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__person_email.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__person_email", "alias": "not_null_stg_klaviyo__person_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__person_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.159572, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__person')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__person"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__person"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_df656836e047bb69a86997735efb3161"}, "created_at": 1671482451.160525, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__person\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__person"}, "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "metric_id", "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "not_null_stg_klaviyo__metric_metric_id"], "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "not_null_stg_klaviyo__metric_metric_id.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "not_null_stg_klaviyo__metric_metric_id", "alias": "not_null_stg_klaviyo__metric_metric_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/not_null_stg_klaviyo__metric_metric_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.163253, "compiled_code": "\n \n \n\n\n\nselect metric_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric\"\nwhere metric_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "metric_id", "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["metric_id", "source_relation"], "model": "{{ get_where_subquery(ref('stg_klaviyo__metric')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo_source.stg_klaviyo__metric"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo_source", "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation"], "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58\") }}", "language": "sql", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "original_file_path": "models/stg_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation", "alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["stg_klaviyo__metric"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo_source/models/stg_klaviyo.yml/dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_45cba7e3442f1bc3264a04c52efb4d58"}, "created_at": 1671482451.164238, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n metric_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_klaviyo\".\"stg_klaviyo__metric\"\n group by metric_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.stg_klaviyo__metric"}, "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__events_event_id"], "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__events_event_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__events_event_id", "alias": "not_null_klaviyo__events_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__events_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.202354, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.klaviyo__events"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__events')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__events"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__events"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8b483e4115ab91fbb579be0d68288d98"}, "created_at": 1671482451.203572, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__events\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__events"}, "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__person_campaign_flow_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__person_campaign_flow_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__person_campaign_flow_person_id", "alias": "not_null_klaviyo__person_campaign_flow_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__person_campaign_flow_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.2067509, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__person_campaign_flow\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "last_touch_campaign_id", "last_touch_flow_id", "variation_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__person_campaign_flow')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__person_campaign_flow"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation", "alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__person_campaign_flow"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_b833c7b8de2dbcac0bfcd913f29d49fd"}, "created_at": 1671482451.207992, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__person_campaign_flow\"\n group by person_id, last_touch_campaign_id, last_touch_flow_id, variation_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__person_campaign_flow"}, "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__campaigns_campaign_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__campaigns_campaign_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__campaigns_campaign_variation_key", "alias": "not_null_klaviyo__campaigns_campaign_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__campaigns_campaign_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.211679, "compiled_code": "\n \n \n\n\n\nselect campaign_variation_key\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__campaigns\"\nwhere campaign_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "campaign_variation_key", "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["campaign_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__campaigns')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__campaigns"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__campaigns"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8c02a0c80dd7e19571d353539126fd64"}, "created_at": 1671482451.212867, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n campaign_variation_key, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__campaigns\"\n group by campaign_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__campaigns"}, "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "flow_variation_key", "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__flows_flow_variation_key"], "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__flows_flow_variation_key.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__flows_flow_variation_key", "alias": "not_null_klaviyo__flows_flow_variation_key", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__flows_flow_variation_key.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.2160268, "compiled_code": "\n \n \n\n\n\nselect flow_variation_key\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__flows\"\nwhere flow_variation_key is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "flow_variation_key", "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["flow_variation_key", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__flows')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__flows"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation", "alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__flows"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_699ce797a4af34c0906f1e96e7e5186e"}, "created_at": 1671482451.217152, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n flow_variation_key, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__flows\"\n group by flow_variation_key, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__flows"}, "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_person_id"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_person_id.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_person_id", "alias": "not_null_klaviyo__persons_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.220299, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "materialized": "test", "severity": "WARN", "store_failures": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "unique_klaviyo__persons_email"], "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}{{ config(severity=\"warn\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "unique_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "unique_klaviyo__persons_email", "alias": "unique_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/unique_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {"severity": "WARN"}, "created_at": 1671482451.2215838, "compiled_code": "\n \n \n\nselect\n email as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\"\nwhere email is not null\ngroup by email\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "email", "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "not_null_klaviyo__persons_email"], "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_klaviyo__persons_email.sql", "original_file_path": "models/klaviyo.yml", "name": "not_null_klaviyo__persons_email", "alias": "not_null_klaviyo__persons_email", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/not_null_klaviyo__persons_email.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.222613, "compiled_code": "\n \n \n\n\n\nselect email\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\"\nwhere email is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "email", "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('klaviyo__persons')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.klaviyo__persons"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "original_file_path": "models/klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["klaviyo__persons"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/klaviyo.yml/dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_f8f3a9d3aa76b62bb804805c73d99329"}, "created_at": 1671482451.223754, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_klaviyo\".\"klaviyo__persons\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.klaviyo__persons"}, "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "event_id", "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__event_attribution_event_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__event_attribution_event_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__event_attribution_event_id", "alias": "not_null_int_klaviyo__event_attribution_event_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__event_attribution_event_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.233422, "compiled_code": "\n \n \n\n\n\nselect event_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__event_attribution\"\nwhere event_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "event_id", "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["event_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__event_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__event_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation", "alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__event_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_a0147e1bc143333a515d11c7f665da10"}, "created_at": 1671482451.234596, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n event_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__event_attribution\"\n group by event_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__event_attribution"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["variation_id", "source_relation", "last_touch_campaign_id", "last_touch_flow_id"], "model": "{{ get_where_subquery(ref('int_klaviyo__campaign_flow_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id", "alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__campaign_flow_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_e4603c9c1d4c74e9c4571eb9a11c5a61"}, "created_at": 1671482451.2373362, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__campaign_flow_metrics\"\n group by variation_id, source_relation, last_touch_campaign_id, last_touch_flow_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__campaign_flow_metrics"}, "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "person_id", "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "not_null_int_klaviyo__person_metrics_person_id"], "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "not_null_int_klaviyo__person_metrics_person_id.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "not_null_int_klaviyo__person_metrics_person_id", "alias": "not_null_int_klaviyo__person_metrics_person_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/not_null_int_klaviyo__person_metrics_person_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.2404108, "compiled_code": "\n \n \n\n\n\nselect person_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__person_metrics\"\nwhere person_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "person_id", "file_key_name": "models.int_klaviyo__person_metrics"}, "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["person_id", "source_relation"], "model": "{{ get_where_subquery(ref('int_klaviyo__person_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.klaviyo.int_klaviyo__person_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["klaviyo", "intermediate", "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation"], "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c\") }}", "language": "sql", "package_name": "klaviyo", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo", "path": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "original_file_path": "models/intermediate/int_klaviyo.yml", "name": "dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation", "alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["int_klaviyo__person_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/klaviyo/models/intermediate/int_klaviyo.yml/dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_44a55e0600e791676842b0edee32af5c"}, "created_at": 1671482451.241546, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n person_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_int_klaviyo\".\"int_klaviyo__person_metrics\"\n group by person_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.int_klaviyo__person_metrics"}, "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": {"test_metadata": {"name": "unique", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_unique", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "unique_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "unique_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "unique_shopify__customer_cohorts_customer_cohort_id", "alias": "unique_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/unique_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.3090649, "compiled_code": "\n \n \n\nselect\n customer_cohort_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is not null\ngroup by customer_cohort_id\nhaving count(*) > 1\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "customer_cohort_id", "model": "{{ get_where_subquery(ref('shopify__customer_cohorts')) }}"}, "namespace": null}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customer_cohorts"]}, "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "not_null_shopify__customer_cohorts_customer_cohort_id"], "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "not_null_shopify__customer_cohorts_customer_cohort_id.sql", "original_file_path": "models/shopify.yml", "name": "not_null_shopify__customer_cohorts_customer_cohort_id", "alias": "not_null_shopify__customer_cohorts_customer_cohort_id", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customer_cohorts"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/not_null_shopify__customer_cohorts_customer_cohort_id.sql", "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1671482451.31027, "compiled_code": "\n \n \n\n\n\nselect customer_cohort_id\nfrom \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customer_cohorts\"\nwhere customer_cohort_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": "customer_cohort_id", "file_key_name": "models.shopify__customer_cohorts"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0e30d4742af59bda60aa3c3f634a72ce"}, "created_at": 1671482451.311311, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__orders\"\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_93b849a7493f07ea332b58b74fbb6696"}, "created_at": 1671482451.314273, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n customer_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__customers\"\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["product_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__products')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__products"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation", "alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__products"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_64adf669e5f645d81dbdf6d5d3a930fa"}, "created_at": 1671482451.317173, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n product_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__products\"\n group by product_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__products"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_line_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__order_lines')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__order_lines"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation", "alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__order_lines"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_0bd7a3e6d2ce7dc1c5c09d9f9d5f6b40"}, "created_at": 1671482451.320296, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_line_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__order_lines\"\n group by order_line_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__order_lines"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["transaction_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__transactions')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__transactions"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "original_file_path": "models/shopify.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation", "alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__transactions"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/shopify.yml/dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_8e8f17b2e5241cc1e3a33f9fa479a3fb"}, "created_at": 1671482451.323209, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n transaction_id, source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n group by transaction_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__transactions"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["customer_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__customers__order_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__customers__order_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation", "alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__customers__order_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4d1af0d9338b2b5b246e23c580e294e3"}, "created_at": 1671482451.326755, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n customer_id, source_relation\n from __dbt__cte__shopify__customers__order_aggregates\n group by customer_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__customers__order_aggregates", "sql": " __dbt__cte__shopify__customers__order_aggregates as (\nwith orders as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order\"\n\n), transactions as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify\".\"shopify__transactions\"\n where lower(status) = 'success'\n\n), aggregated as (\n\n select\n orders.customer_id,\n orders.source_relation,\n min(orders.created_timestamp) as first_order_timestamp,\n max(orders.created_timestamp) as most_recent_order_timestamp,\n avg(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as average_order_value,\n sum(case when lower(transactions.kind) in ('sale','capture') then transactions.currency_exchange_calculated_amount end) as lifetime_total_spent,\n sum(case when lower(transactions.kind) in ('refund') then transactions.currency_exchange_calculated_amount end) as lifetime_total_refunded,\n count(distinct orders.order_id) as lifetime_count_orders\n from orders\n left join transactions\n using (order_id, source_relation)\n where customer_id is not null\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__customers__order_aggregates"}, "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "source_relation"], "model": "{{ get_where_subquery(ref('shopify__orders__order_line_aggregates')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify.shopify__orders__order_line_aggregates"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify", "intermediate", "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation"], "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04\") }}", "language": "sql", "package_name": "shopify", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify", "path": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "original_file_path": "models/intermediate/intermediate.yml", "name": "dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation", "alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify__orders__order_line_aggregates"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify/models/intermediate/intermediate.yml/dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_3ae1e43ee344b59ccef000bf524f1f04"}, "created_at": 1671482451.3296618, "compiled_code": "\n\n\n\n\n\nwith __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n),validation_errors as (\n\n select\n order_id, source_relation\n from __dbt__cte__shopify__orders__order_line_aggregates\n group by order_id, source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [{"id": "model.shopify.shopify__orders__order_line_aggregates", "sql": " __dbt__cte__shopify__orders__order_line_aggregates as (\nwith order_line as (\n\n select *\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_stg_shopify\".\"stg_shopify__order_line\"\n\n), aggregated as (\n\n select \n order_id,\n source_relation,\n count(*) as line_item_count\n from order_line\n group by 1,2\n\n)\n\nselect *\nfrom aggregated\n)"}], "relation_name": null, "column_name": null, "file_key_name": "models.shopify__orders__order_line_aggregates"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["email", "klaviyo_source_relation", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__customer_enhanced')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__customer_enhanced"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_6d96dafa6cfb9bf7095ffd278a75adbc"}, "created_at": 1671482451.363777, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n email, klaviyo_source_relation, shopify_source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__customer_enhanced\"\n group by email, klaviyo_source_relation, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__customer_enhanced"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["date_day", "email", "klaviyo_source_relation", "shopify_source_relation", "campaign_id", "flow_id", "variation_id"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__daily_customer_metrics')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id", "alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__daily_customer_metrics"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4b14da03db00d67d51bb9e9f7e8b766f"}, "created_at": 1671482451.3671832, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__daily_customer_metrics\"\n group by date_day, email, klaviyo_source_relation, shopify_source_relation, campaign_id, flow_id, variation_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__daily_customer_metrics"}, "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["order_id", "shopify_source_relation"], "model": "{{ get_where_subquery(ref('shopify_holistic_reporting__orders_attribution')) }}"}, "namespace": "dbt_utils"}, "compiled": true, "resource_type": "test", "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"]}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "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"}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests_dbt_test__audit", "fqn": ["shopify_holistic_reporting", "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation"], "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb", "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a\") }}", "language": "sql", "package_name": "shopify_holistic_reporting", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_holistic_reporting", "path": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "original_file_path": "models/shopify_holistic_reporting.yml", "name": "dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation", "alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a", "checksum": {"name": "none", "checksum": ""}, "tags": [], "refs": [["shopify_holistic_reporting__orders_attribution"]], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": "target/compiled/shopify_holistic_reporting/models/shopify_holistic_reporting.yml/dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a.sql", "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ed10bd87338124f135be382dd44f7c6a"}, "created_at": 1671482451.371304, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n order_id, shopify_source_relation\n from \"postgres\".\"shopify_holistic_reporting_integration_tests_shopify_holistic\".\"shopify_holistic_reporting__orders_attribution\"\n group by order_id, shopify_source_relation\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "relation_name": null, "column_name": null, "file_key_name": "models.shopify_holistic_reporting__orders_attribution"}}, "sources": {"source.shopify_source.shopify.order": {"fqn": ["shopify_source", "shopify", "order"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": true, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "app_id": {"name": "app_id", "description": "The ID of the app that created the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_1": {"name": "billing_address_address_1", "description": "The street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_address_2": {"name": "billing_address_address_2", "description": "An optional additional field for the street address of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_city": {"name": "billing_address_city", "description": "The city, town, or village of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_company": {"name": "billing_address_company", "description": "The company of the person associated with the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country": {"name": "billing_address_country", "description": "The name of the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_country_code": {"name": "billing_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_first_name": {"name": "billing_address_first_name", "description": "The first name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_last_name": {"name": "billing_address_last_name", "description": "The last name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_latitude": {"name": "billing_address_latitude", "description": "The latitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_longitude": {"name": "billing_address_longitude", "description": "The longitude of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_name": {"name": "billing_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_phone": {"name": "billing_address_phone", "description": "The phone number at the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province": {"name": "billing_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_province_code": {"name": "billing_address_province_code", "description": "The two-letter abbreviation of the region of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "billing_address_zip": {"name": "billing_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the billing address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "browser_ip": {"name": "browser_ip", "description": "The IP address of the browser used by the customer when they placed the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "buyer_accepts_marketing": {"name": "buyer_accepts_marketing", "description": "Whether the customer consented to receive email updates from the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancel_reason": {"name": "cancel_reason", "description": "The reason why the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cancelled_at": {"name": "cancelled_at", "description": "The date and time when the order was canceled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "cart_token": {"name": "cart_token", "description": "The ID of the cart that's associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "closed_at": {"name": "closed_at", "description": "The date and time when the order was closed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The autogenerated date and time when the order was created in Shopify.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code for the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_id": {"name": "customer_id", "description": "The ID of the order's customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The customer's email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "financial_status": {"name": "financial_status", "description": "The status of payments associated with the order. Can only be set when the order is created", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "The order's status in terms of fulfilled line items.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the order, used for API purposes. This is different from the order_number property, which is the ID used by the shop owner and customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "landing_site_base_url": {"name": "landing_site_base_url", "description": "The URL for the page where the buyer landed when they entered the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the order was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The order name, generated by combining the order_number property with the order prefix and suffix that are set in the merchant's general settings.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "An optional note that a shop owner can attach to the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "number": {"name": "number", "description": "The order's position in the shop's count of orders. Numbers are sequential and start at 1.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_number": {"name": "order_number", "description": "The order 's position in the shop's count of orders starting at 1001. Order numbers are sequential and start at 1001.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "The date and time when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processing_method": {"name": "processing_method", "description": "How the payment was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "referring_site": {"name": "referring_site", "description": "The website where the customer clicked a link to the shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_1": {"name": "shipping_address_address_1", "description": "The street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_address_2": {"name": "shipping_address_address_2", "description": "An optional additional field for the street address of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_city": {"name": "shipping_address_city", "description": "The city, town, or village of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_company": {"name": "shipping_address_company", "description": "The company of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country": {"name": "shipping_address_country", "description": "The name of the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_country_code": {"name": "shipping_address_country_code", "description": "The two-letter code (ISO 3166-1 format) for the country of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_first_name": {"name": "shipping_address_first_name", "description": "The first name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_last_name": {"name": "shipping_address_last_name", "description": "The last name of the person associated with the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_latitude": {"name": "shipping_address_latitude", "description": "The latitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_longitude": {"name": "shipping_address_longitude", "description": "The longitude of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_name": {"name": "shipping_address_name", "description": "The full name of the person associated with the payment method.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_phone": {"name": "shipping_address_phone", "description": "The phone number at the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province": {"name": "shipping_address_province", "description": "The name of the region (province, state, prefecture, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_province_code": {"name": "shipping_address_province_code", "description": "The two-letter abbreviation of the region of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "shipping_address_zip": {"name": "shipping_address_zip", "description": "The postal code (zip, postcode, Eircode, \u2026) of the shipping address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "Where the order originated. Can be set only during order creation, and is not writeable afterwards.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal_price": {"name": "subtotal_price", "description": "The price of the order in the shop currency after discounts but before shipping, taxes, and tips.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxes_included": {"name": "taxes_included", "description": "Whether taxes are included in the order subtotal.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether this is a test order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "token": {"name": "token", "description": "A unique token for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discounts": {"name": "total_discounts", "description": "The total discounts applied to the price of the order in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_line_items_price": {"name": "total_line_items_price", "description": "The sum of all line item prices in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_price": {"name": "total_price", "description": "The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency. Must be positive.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The sum of all the taxes applied to the order in th shop currency. Must be positive).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_weight": {"name": "total_weight", "description": "The sum of all line item weights in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time (ISO 8601 format) when the order was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID of the user logged into Shopify POS who processed the order, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order\"", "created_at": 1671482451.387908}, "source.shopify_source.shopify.customer": {"fqn": ["shopify_source", "shopify", "customer"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.customer", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "customer", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "customer", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a customer in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "accepts_marketing": {"name": "accepts_marketing", "description": "Whether the customer has consented to receive marketing material via email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the customer was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "default_address_id": {"name": "default_address_id", "description": "The default address for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The unique email address of the customer. Attempting to assign the same email address to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "The customer's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "A unique identifier for the customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "The customer's last name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "orders_count": {"name": "orders_count", "description": "The number of orders associated with this customer.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone": {"name": "phone", "description": "The unique phone number (E.164 format) for this customer. Attempting to assign the same phone number to multiple customers returns an error.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "state": {"name": "state", "description": "The state of the customer's account with a shop.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_exempt": {"name": "tax_exempt", "description": "Whether the customer is exempt from paying taxes on their order. If true, then taxes won't be applied to an order at checkout. If false, then taxes will be applied at checkout.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_spent": {"name": "total_spent", "description": "The total amount of money that the customer has spent across their order history.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the customer information was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "verified_email": {"name": "verified_email", "description": "Whether the customer has verified their email address.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"customer\"", "created_at": 1671482451.3880289}, "source.shopify_source.shopify.order_line": {"fqn": ["shopify_source", "shopify", "order_line"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item for an order in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillable_quantity": {"name": "fulfillable_quantity", "description": "The amount available to fulfill, calculated as follows: quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The service provider that's fulfilling the item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_status": {"name": "fulfillment_status", "description": "How far along an order is in terms line items fulfilled.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gift_card": {"name": "gift_card", "description": "Whether the item is a gift card. If true, then the item is not taxed or considered for shipping charges.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the item in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The ID of the line item.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "The name of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID of the related order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the item before discounts have been applied in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The ID of the product that the line item belongs to. Can be null if the original product associated with the order is deleted at a later date.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The number of items that were purchased.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "Whether the item requires shipping.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "The item's SKU (stock keeping unit).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether the item was taxable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_discount": {"name": "total_discount", "description": "The total amount of the discount allocated to the line item in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "variant_id": {"name": "variant_id", "description": "The ID of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the item's supplier.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line\"", "created_at": 1671482451.388117}, "source.shopify_source.shopify.order_line_refund": {"fqn": ["shopify_source", "shopify", "order_line_refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_line_refund", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_line_refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_line_refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a line item refund in Shopify.", "columns": {"_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique identifier of the line item in the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "TThe unique identifier of the location where the items will be restockedBD", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_line_id": {"name": "order_line_id", "description": "The ID of the related line item in the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "quantity": {"name": "quantity", "description": "The quantity of the associated line item that was returned.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID of the related refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock_type": {"name": "restock_type", "description": "How this refund line item affects inventory levels.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subtotal": {"name": "subtotal", "description": "Subtotal amount of the order line refund", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_tax": {"name": "total_tax", "description": "The total tax applied to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_line_refund\"", "created_at": 1671482451.3881888}, "source.shopify_source.shopify.product": {"fqn": ["shopify_source", "shopify", "product"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product in Shopify.", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Whether the record has been deleted in the source system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time when the product was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "handle": {"name": "handle", "description": "A unique human-friendly string for the product. Automatically generated from the product's title.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "An unsigned 64-bit integer that's used as a unique identifier for the product. Each id is unique across the Shopify system. No two products will have the same id, even if they're from different shops.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_type": {"name": "product_type", "description": "A categorization for the product used for filtering and searching products.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_at": {"name": "published_at", "description": "The date and time (ISO 8601 format) when the product was published. Can be set to null to unpublish the product from the Online Store channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "published_scope": {"name": "published_scope", "description": "Whether the product is published to the Point of Sale channel.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The name of the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product was last modified.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "vendor": {"name": "vendor", "description": "The name of the product's vendor.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product\"", "created_at": 1671482451.3882618}, "source.shopify_source.shopify.product_variant": {"fqn": ["shopify_source", "shopify", "product_variant"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.product_variant", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "product_variant", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "product_variant", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a product variant in Shopify", "columns": {"barcode": {"name": "barcode", "description": "The barcode, UPC, or ISBN number for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "compare_at_price": {"name": "compare_at_price", "description": "The original price of the item before an adjustment or a sale.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The date and time (ISO 8601 format) when the product variant was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "fulfillment_service": {"name": "fulfillment_service", "description": "The fulfillment service associated with the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "grams": {"name": "grams", "description": "The weight of the product variant in grams.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "The unique numeric identifier for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "image_id": {"name": "image_id", "description": "The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_item_id": {"name": "inventory_item_id", "description": "The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_management": {"name": "inventory_management", "description": "The fulfillment service that tracks the number of items in stock for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_policy": {"name": "inventory_policy", "description": "Whether customers are allowed to place an order for the product variant when it's out of stock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "inventory_quantity": {"name": "inventory_quantity", "description": "An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "old_inventory_quantity": {"name": "old_inventory_quantity", "description": "This property is deprecated. Use the InventoryLevel resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_1": {"name": "option_1", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_2": {"name": "option_2", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "option_3": {"name": "option_3", "description": "The custom properties that a shop owner uses to define product variants. You can define three options for a product variant: option1, option2, option3.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "position": {"name": "position", "description": "The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "price": {"name": "price", "description": "The price of the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "product_id": {"name": "product_id", "description": "The unique numeric identifier for the product.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "requires_shipping": {"name": "requires_shipping", "description": "This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sku": {"name": "sku", "description": "A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "taxable": {"name": "taxable", "description": "Whether a tax is charged when the product variant is sold.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_code": {"name": "tax_code", "description": "This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "The title of the product variant. The title field is a concatenation of the option1, option2, and option3 fields. You can only update title indirectly using the option fields.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated_at": {"name": "updated_at", "description": "The date and time when the product variant was last modified. Gets returned in ISO 8601 format.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight": {"name": "weight", "description": "The weight of the product variant in the unit system specified with weight_unit.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "weight_unit": {"name": "weight_unit", "description": "The unit of measurement that applies to the product variant's weight. If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, and lb.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_shipping_price_set": {"name": "total_shipping_price_set", "description": "The total shipping price set for the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "index": {"name": "index", "description": "The index associated with the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "pre_tax_price": {"name": "pre_tax_price", "description": "The total pre tax price of the order.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"product_variant\"", "created_at": 1671482451.38836}, "source.shopify_source.shopify.transaction": {"fqn": ["shopify_source", "shopify", "transaction"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.transaction", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "transaction", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "transaction", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a transaction in Shopify.", "columns": {"transaction_id": {"name": "transaction_id", "description": "The ID for the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "The ID for the order that the transaction is associated with.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "The ID associated with a refund in the refund table.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "The amount of money included in the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "authorization": {"name": "authorization", "description": "The authorization code associated with the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_timestamp": {"name": "created_timestamp", "description": "The date and time when the transaction was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_timestamp": {"name": "processed_timestamp", "description": "The date and time when a transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "device_id": {"name": "device_id", "description": "The ID for the device.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "gateway": {"name": "gateway", "description": "The name of the gateway the transaction was issued through.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "source_name": {"name": "source_name", "description": "The origin of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "message": {"name": "message", "description": "A string generated by the payment provider with additional information about why the transaction succeeded or failed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The three-letter code (ISO 4217 format) for the currency used for the payment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "location_id": {"name": "location_id", "description": "The ID of the physical location where the transaction was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "parent_id": {"name": "parent_id", "description": "The ID of an associated transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_avs_result_code": {"name": "payment_avs_result_code", "description": "The response code from the address verification system.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_bin": {"name": "payment_credit_card_bin", "description": "The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_cvv_result_code": {"name": "payment_cvv_result_code", "description": "The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_number": {"name": "payment_credit_card_number", "description": "The customer's credit card number, with most of the leading digits redacted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "payment_credit_card_company": {"name": "payment_credit_card_company", "description": "The name of the company that issued the customer's credit card.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The transaction's type.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "receipt": {"name": "receipt", "description": "A transaction receipt attached to the transaction by the gateway.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_id": {"name": "currency_exchange_id", "description": "The ID of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_adjustment": {"name": "currency_exchange_adjustment", "description": "The difference between the amounts on the associated transaction and the parent transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_original_amount": {"name": "currency_exchange_original_amount", "description": "The amount of the parent transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_final_amount": {"name": "currency_exchange_final_amount", "description": "The amount of the associated transaction in the shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "currency_exchange_currency": {"name": "currency_exchange_currency", "description": "The shop currency.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "error_code": {"name": "error_code", "description": "A standardized error code, independent of the payment provider.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "The status of the transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "test": {"name": "test", "description": "Whether the transaction is a test transaction.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "The ID for the user who was logged into the Shopify POS device when the order was processed, if applicable.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"transaction\"", "created_at": 1671482451.3884559}, "source.shopify_source.shopify.refund": {"fqn": ["shopify_source", "shopify", "refund"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.refund", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "refund", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "refund", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents a refund within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "Timestamp of the date when the refund was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "processed_at": {"name": "processed_at", "description": "Timestamp of the date when the refund was processed.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "note": {"name": "note", "description": "User generated note attached to the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "restock": {"name": "restock", "description": "Boolean indicating if the refund is a result of a restock.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "user_id": {"name": "user_id", "description": "Reference to the user id which generated the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "total_duties_set": {"name": "total_duties_set", "description": "Record representing total duties set for the refund.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the refund is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"refund\"", "created_at": 1671482451.388524}, "source.shopify_source.shopify.order_adjustment": {"fqn": ["shopify_source", "shopify", "order_adjustment"], "database": "postgres", "schema": "shopify", "unique_id": "source.shopify_source.shopify.order_adjustment", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "models/src_shopify.yml", "original_file_path": "models/src_shopify.yml", "name": "order_adjustment", "source_name": "shopify", "source_description": "", "loader": "", "identifier": "order_adjustment", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": null, "freshness": {"warn_after": {"count": null, "period": null}, "error_after": {"count": null, "period": null}, "filter": null}, "external": null, "description": "Each record represents and adjustment to and order within Shopify.", "columns": {"id": {"name": "id", "description": "The unique numeric identifier for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "order_id": {"name": "order_id", "description": "Reference to the order which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "refund_id": {"name": "refund_id", "description": "Reference to the refund which the adjustment is associated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount": {"name": "amount", "description": "Amount of the adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount": {"name": "tax_amount", "description": "Tax amount applied to the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "kind": {"name": "kind", "description": "The kind of order adjustment (eg. refund, restock, etc.).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "reason": {"name": "reason", "description": "The reason for the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "amount_set": {"name": "amount_set", "description": "Amount set towards the order adjustment", "meta": {}, "data_type": null, "quote": null, "tags": []}, "tax_amount_set": {"name": "tax_amount_set", "description": "Tax amount set towards the order adjustment.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_synced": {"name": "_fivetran_synced", "description": "The time when a record was last updated by Fivetran.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"shopify\".\"order_adjustment\"", "created_at": 1671482451.38865}, "source.klaviyo_source.klaviyo.campaign": {"fqn": ["klaviyo_source", "klaviyo", "campaign"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.campaign", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "campaign", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "campaign", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table capturing email campaigns in Klaviyo. \n", "columns": {"_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_type": {"name": "campaign_type", "description": "Type of campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the campaign was created, in UTC.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email_template_id": {"name": "email_template_id", "description": "Foreign key referencing the ID of the `email_template` object that will be the content of this campaign. Note the Email Template is copied when creating this campaign, so future changes to that Email Template will not alter the content of this campaign.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_email": {"name": "from_email", "description": "The email address your email will be sent from and will be used in the reply-to header.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "from_name": {"name": "from_name", "description": "The name or label associated with the email address you're sending from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "is_segmented": {"name": "is_segmented", "description": "Boolean that is true if the campaign is directed at a Klaviyo segment (not a list).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "A name for this campaign. If not specified, this will default to the subject of the campaign.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "send_time": {"name": "send_time", "description": "Timestamp of when the campaign is scheduled to be sent in the future, if [\"smart send time\"](https://help.klaviyo.com/hc/en-us/articles/360029794371-Smart-Send-Time-in-Klaviyo#how-to-utilize-smart-send-time3) is used. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "sent_at": {"name": "sent_at", "description": "Timestamp of when the campaign was first sent out to users.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the campaign. Either \"draft\", \"scheduled\", \"sent\", or \"cancelled\".", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_id": {"name": "status_id", "description": "Corresponding ID to the current status.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status_label": {"name": "status_label", "description": "The label of the status as it appears in the UI (should be the same as `status`).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "subject": {"name": "subject", "description": "The subject line of the campaign's email.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the campaign was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"campaign\"", "created_at": 1671482451.388741}, "source.klaviyo_source.klaviyo.event": {"fqn": ["klaviyo_source", "klaviyo", "event"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.event", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "event", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "event", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of events (and metrics) triggered in Klaviyo or via its integrations. Custom columns can be passed through to downstream models via the `klaviyo__event_pass_through_columns` variable (see README for details).\n", "columns": {"_variation": {"name": "_variation", "description": "Unique ID of the attributed flow or campaign variation group. This does not map onto another table. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Foreign key referencing the CAMPAIGN that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "datetime": {"name": "datetime", "description": "Timestamp of when the event was recorded in Klaviyo. Should be the same/nominally off from `timestamp`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timestamp": {"name": "timestamp", "description": "Timestamp of when the event was triggered. Should be the same/nominally off from `datetime`.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_id": {"name": "flow_id", "description": "Foreign key referencing the FLOW that the event is attributed to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "flow_message_id": {"name": "flow_message_id", "description": "Unique ID of the FLOW_MESSAGE that the event is attributed to. This does not map onto another table.\n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "metric_id": {"name": "metric_id", "description": "Foreign key referencing the metric being captured.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "person_id": {"name": "person_id", "description": "Foreign key referencing the PERSON who triggered the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "type": {"name": "type", "description": "Type of event that was triggered. This is the same as the METRIC name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "uuid": {"name": "uuid", "description": "Universally Unique Identifier of the event.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "property_value": {"name": "property_value", "description": "Numeric value associated with the event (ie the dollars associated with a purchase).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"event\"", "created_at": 1671482451.388821}, "source.klaviyo_source.klaviyo.flow": {"fqn": ["klaviyo_source", "klaviyo", "flow"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.flow", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "flow", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "flow", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of automated, triggered flow sequences in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the flow was first created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "status": {"name": "status", "description": "Current status of the flow. Either 'manual', 'live', or 'draft'. Read more [here](https://help.klaviyo.com/hc/en-us/articles/115002774932-Getting-Started-with-Flows#the-flow-action-status9).", "meta": {}, "data_type": null, "quote": null, "tags": []}, "trigger": {"name": "trigger", "description": "JSON of metric, segment, list, and/or date-property filters that will trigger this flow. These are applied to the **event level**.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the flow was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "customer_filter": {"name": "customer_filter", "description": "JSON of flow filters placed on the **person level** that will trigger this flow.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"flow\"", "created_at": 1671482451.3888881}, "source.klaviyo_source.klaviyo.integration": {"fqn": ["klaviyo_source", "klaviyo", "integration"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.integration", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "integration", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "integration", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing third-party platforms integrated into Klaviyo.", "columns": {"category": {"name": "category", "description": "Use-case category of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the integration.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the integrated platform.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"integration\"", "created_at": 1671482451.388949}, "source.klaviyo_source.klaviyo.person": {"fqn": ["klaviyo_source", "klaviyo", "person"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.person", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "person", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "person", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table storing the profiles of all people/users interacted with. Custom columns can be passed through to downstream models via the `klaviyo__person_pass_through_columns` variable (see README for details).\n", "columns": {"id": {"name": "id", "description": "Unique ID of the user if you use your own unique identifier. Otherwise, Klaviyo recommends using the email as the primary key. \n", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_1": {"name": "address_1", "description": "First line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "address_2": {"name": "address_2", "description": "Second line of the person's address.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "city": {"name": "city", "description": "City they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "country": {"name": "country", "description": "Country they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "zip": {"name": "zip", "description": "Postal code where they live.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "created": {"name": "created", "description": "Timestamp of when the person's profile was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "email": {"name": "email", "description": "The email address and the unique identifier for a profile.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "first_name": {"name": "first_name", "description": "Person's first name.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "last_name": {"name": "last_name", "description": "Person's surname.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "latitude": {"name": "latitude", "description": "Latitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "longitude": {"name": "longitude", "description": "Longitude of the person's location.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "organization": {"name": "organization", "description": "Business organization they belong to.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "phone_number": {"name": "phone_number", "description": "Associated phone number.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "region": {"name": "region", "description": "Region or state they live in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "timezone": {"name": "timezone", "description": "Timezone they are situated in.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "title": {"name": "title", "description": "Title at their business or organization.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the person profile was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"person\"", "created_at": 1671482451.3890262}, "source.klaviyo_source.klaviyo.metric": {"fqn": ["klaviyo_source", "klaviyo", "metric"], "database": "postgres", "schema": "klaviyo", "unique_id": "source.klaviyo_source.klaviyo.metric", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "models/src_klaviyo.yml", "original_file_path": "models/src_klaviyo.yml", "name": "metric", "source_name": "klaviyo", "source_description": "", "loader": "fivetran", "identifier": "metric", "resource_type": "source", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 72, "period": "hour"}, "error_after": {"count": 96, "period": "hour"}, "filter": null}, "external": null, "description": "Table of tracked metrics across integrations in Klaviyo.", "columns": {"created": {"name": "created", "description": "Timestamp of when the metric was created.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "id": {"name": "id", "description": "Unique ID of the metric being tracked.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "integration_id": {"name": "integration_id", "description": "Foreign key referencing the INTEGRATION that the metric is being pulled from.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "name": {"name": "name", "description": "Name of the metric (same as `EVENT.type`)", "meta": {}, "data_type": null, "quote": null, "tags": []}, "updated": {"name": "updated", "description": "Timestamp of when the metric was last updated.", "meta": {}, "data_type": null, "quote": null, "tags": []}, "_fivetran_deleted": {"name": "_fivetran_deleted", "description": "Boolean that is true if the campaign has been soft-deleted.", "meta": {}, "data_type": null, "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {}, "relation_name": "\"postgres\".\"klaviyo\".\"metric\"", "created_at": 1671482451.389089}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.816372, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8166, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.816714, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.816829, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.816938, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"unique_id": "macro.dbt_postgres.postgres__get_catalog", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.818194, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"unique_id": "macro.dbt_postgres.postgres_get_relations", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.818961, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"unique_id": "macro.dbt_postgres.postgres__create_table_as", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8246038, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8251579, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"unique_id": "macro.dbt_postgres.postgres__create_schema", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.825546, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"unique_id": "macro.dbt_postgres.postgres__drop_schema", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.825939, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.826456, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8268769, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"unique_id": "macro.dbt_postgres.postgres__information_schema_name", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.82708, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"unique_id": "macro.dbt_postgres.postgres__list_schemas", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.827473, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.827979, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.828862, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.829089, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8294451, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8297331, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"unique_id": "macro.dbt_postgres.postgres_escape_comment", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.830233, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.830474, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8310988, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8313332, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"unique_id": "macro.dbt_postgres.postgres__copy_grants", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "name": "postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8314612, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8320582, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.832908, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"unique_id": "macro.dbt_postgres.postgres__dateadd", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8332531, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"unique_id": "macro.dbt_postgres.postgres__listagg", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.834018, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"unique_id": "macro.dbt_postgres.postgres__datediff", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.837423, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"unique_id": "macro.dbt_postgres.postgres__any_value", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.837733, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"unique_id": "macro.dbt_postgres.postgres__last_day", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8383548, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"unique_id": "macro.dbt_postgres.postgres__split_part", "package_name": "dbt_postgres", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.838978, "supported_languages": null}, "macro.dbt.run_hooks": {"unique_id": "macro.dbt.run_hooks", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.840236, "supported_languages": null}, "macro.dbt.make_hook_config": {"unique_id": "macro.dbt.make_hook_config", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.840437, "supported_languages": null}, "macro.dbt.before_begin": {"unique_id": "macro.dbt.before_begin", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8405828, "supported_languages": null}, "macro.dbt.in_transaction": {"unique_id": "macro.dbt.in_transaction", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.840725, "supported_languages": null}, "macro.dbt.after_commit": {"unique_id": "macro.dbt.after_commit", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "name": "after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8408582, "supported_languages": null}, "macro.dbt.set_sql_header": {"unique_id": "macro.dbt.set_sql_header", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8413289, "supported_languages": null}, "macro.dbt.should_full_refresh": {"unique_id": "macro.dbt.should_full_refresh", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.841625, "supported_languages": null}, "macro.dbt.should_store_failures": {"unique_id": "macro.dbt.should_store_failures", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.84192, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"unique_id": "macro.dbt.snapshot_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8424242, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"unique_id": "macro.dbt.default__snapshot_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8426828, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"unique_id": "macro.dbt.strategy_dispatch", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.846003, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"unique_id": "macro.dbt.snapshot_hash_arguments", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.846171, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"unique_id": "macro.dbt.default__snapshot_hash_arguments", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8463879, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"unique_id": "macro.dbt.snapshot_timestamp_strategy", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.847096, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"unique_id": "macro.dbt.snapshot_string_as_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482449.847258, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"unique_id": "macro.dbt.default__snapshot_string_as_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.847424, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.849196, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"unique_id": "macro.dbt.snapshot_check_strategy", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8508081, "supported_languages": null}, "macro.dbt.create_columns": {"unique_id": "macro.dbt.create_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.854954, "supported_languages": null}, "macro.dbt.default__create_columns": {"unique_id": "macro.dbt.default__create_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.855293, "supported_languages": null}, "macro.dbt.post_snapshot": {"unique_id": "macro.dbt.post_snapshot", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.855492, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"unique_id": "macro.dbt.default__post_snapshot", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8556118, "supported_languages": null}, "macro.dbt.get_true_sql": {"unique_id": "macro.dbt.get_true_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.855781, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"unique_id": "macro.dbt.default__get_true_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.855909, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"unique_id": "macro.dbt.snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.856148, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"unique_id": "macro.dbt.default__snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8570611, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"unique_id": "macro.dbt.build_snapshot_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.857258, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"unique_id": "macro.dbt.default__build_snapshot_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.857515, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"unique_id": "macro.dbt.build_snapshot_staging_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.857953, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"unique_id": "macro.dbt.materialization_snapshot_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.863986, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"unique_id": "macro.dbt.materialization_test_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1671482449.866158, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"unique_id": "macro.dbt.get_test_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.866731, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"unique_id": "macro.dbt.default__get_test_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8670459, "supported_languages": null}, "macro.dbt.get_where_subquery": {"unique_id": "macro.dbt.get_where_subquery", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8675048, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"unique_id": "macro.dbt.default__get_where_subquery", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.867892, "supported_languages": null}, "macro.dbt.get_quoted_csv": {"unique_id": "macro.dbt.get_quoted_csv", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.869497, "supported_languages": null}, "macro.dbt.diff_columns": {"unique_id": "macro.dbt.diff_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8700569, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"unique_id": "macro.dbt.diff_column_data_types", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.870738, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"unique_id": "macro.dbt.get_merge_update_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.870976, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"unique_id": "macro.dbt.default__get_merge_update_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.871687, "supported_languages": null}, "macro.dbt.get_merge_sql": {"unique_id": "macro.dbt.get_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, predicates=none) -%}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, predicates) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8759282, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"unique_id": "macro.dbt.default__get_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, predicates) -%}\n {%- set predicates = [] if predicates is none else [] + 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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8775659, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"unique_id": "macro.dbt.get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482449.877802, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns) -%}\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 );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n );\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.878519, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.878776, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.879405, "supported_languages": null}, "macro.dbt.is_incremental": {"unique_id": "macro.dbt.is_incremental", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.880163, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"unique_id": "macro.dbt.get_incremental_append_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.881103, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"unique_id": "macro.dbt.default__get_incremental_append_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.881342, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8815308, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8817952, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"unique_id": "macro.dbt.get_incremental_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.881981, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"unique_id": "macro.dbt.default__get_incremental_merge_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8822458, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.8824372, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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[\"predicates\"])) %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.882698, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"unique_id": "macro.dbt.get_incremental_default_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.882884, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"unique_id": "macro.dbt.default__get_incremental_default_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.883041, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"unique_id": "macro.dbt.get_insert_into_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.883318, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"unique_id": "macro.dbt.materialization_incremental_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "name": "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('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, '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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.888811, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"unique_id": "macro.dbt.incremental_validate_on_schema_change", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.8943412, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"unique_id": "macro.dbt.check_for_schema_changes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.895724, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"unique_id": "macro.dbt.sync_column_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.897059, "supported_languages": null}, "macro.dbt.process_schema_changes": {"unique_id": "macro.dbt.process_schema_changes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.897967, "supported_languages": null}, "macro.dbt.materialization_table_default": {"unique_id": "macro.dbt.materialization_table_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/table.sql", "original_file_path": "macros/materializations/models/table/table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.900863, "supported_languages": ["sql"]}, "macro.dbt.get_create_table_as_sql": {"unique_id": "macro.dbt.get_create_table_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.90153, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"unique_id": "macro.dbt.default__get_create_table_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.90175, "supported_languages": null}, "macro.dbt.create_table_as": {"unique_id": "macro.dbt.create_table_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.902236, "supported_languages": null}, "macro.dbt.default__create_table_as": {"unique_id": "macro.dbt.default__create_table_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/table/create_table_as.sql", "original_file_path": "macros/materializations/models/table/create_table_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9026828, "supported_languages": null}, "macro.dbt.materialization_view_default": {"unique_id": "macro.dbt.materialization_view_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/view.sql", "original_file_path": "macros/materializations/models/view/view.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1671482449.905547, "supported_languages": ["sql"]}, "macro.dbt.handle_existing_table": {"unique_id": "macro.dbt.handle_existing_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.905986, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"unique_id": "macro.dbt.default__handle_existing_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/helpers.sql", "original_file_path": "macros/materializations/models/view/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.906241, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"unique_id": "macro.dbt.create_or_replace_view", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_or_replace_view.sql", "original_file_path": "macros/materializations/models/view/create_or_replace_view.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.907872, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"unique_id": "macro.dbt.get_create_view_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.908351, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"unique_id": "macro.dbt.default__get_create_view_as_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.908523, "supported_languages": null}, "macro.dbt.create_view_as": {"unique_id": "macro.dbt.create_view_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.908746, "supported_languages": null}, "macro.dbt.default__create_view_as": {"unique_id": "macro.dbt.default__create_view_as", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/models/view/create_view_as.sql", "original_file_path": "macros/materializations/models/view/create_view_as.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.90902, "supported_languages": null}, "macro.dbt.materialization_seed_default": {"unique_id": "macro.dbt.materialization_seed_default", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.912589, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"unique_id": "macro.dbt.create_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9175448, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"unique_id": "macro.dbt.default__create_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.918518, "supported_languages": null}, "macro.dbt.reset_csv_table": {"unique_id": "macro.dbt.reset_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.918779, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"unique_id": "macro.dbt.default__reset_csv_table", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.91928, "supported_languages": null}, "macro.dbt.get_csv_sql": {"unique_id": "macro.dbt.get_csv_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.919483, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"unique_id": "macro.dbt.default__get_csv_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.919622, "supported_languages": null}, "macro.dbt.get_binding_char": {"unique_id": "macro.dbt.get_binding_char", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.919769, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"unique_id": "macro.dbt.default__get_binding_char", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.919886, "supported_languages": null}, "macro.dbt.get_batch_size": {"unique_id": "macro.dbt.get_batch_size", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.920091, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"unique_id": "macro.dbt.default__get_batch_size", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.920235, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"unique_id": "macro.dbt.get_seed_column_quoted_csv", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.920761, "supported_languages": null}, "macro.dbt.load_csv_rows": {"unique_id": "macro.dbt.load_csv_rows", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.920972, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"unique_id": "macro.dbt.default__load_csv_rows", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.922369, "supported_languages": null}, "macro.dbt.generate_alias_name": {"unique_id": "macro.dbt.generate_alias_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.922977, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"unique_id": "macro.dbt.default__generate_alias_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.923247, "supported_languages": null}, "macro.dbt.generate_schema_name": {"unique_id": "macro.dbt.generate_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9238882, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"unique_id": "macro.dbt.default__generate_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.92417, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"unique_id": "macro.dbt.generate_schema_name_for_env", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.924474, "supported_languages": null}, "macro.dbt.generate_database_name": {"unique_id": "macro.dbt.generate_database_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.925009, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"unique_id": "macro.dbt.default__generate_database_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9253068, "supported_languages": null}, "macro.dbt.default__test_relationships": {"unique_id": "macro.dbt.default__test_relationships", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.925785, "supported_languages": null}, "macro.dbt.default__test_not_null": {"unique_id": "macro.dbt.default__test_not_null", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.926228, "supported_languages": null}, "macro.dbt.default__test_unique": {"unique_id": "macro.dbt.default__test_unique", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9265652, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"unique_id": "macro.dbt.default__test_accepted_values", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9272141, "supported_languages": null}, "macro.dbt.statement": {"unique_id": "macro.dbt.statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9287732, "supported_languages": null}, "macro.dbt.noop_statement": {"unique_id": "macro.dbt.noop_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.929436, "supported_languages": null}, "macro.dbt.run_query": {"unique_id": "macro.dbt.run_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.929733, "supported_languages": null}, "macro.dbt.convert_datetime": {"unique_id": "macro.dbt.convert_datetime", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9315588, "supported_languages": null}, "macro.dbt.dates_in_range": {"unique_id": "macro.dbt.dates_in_range", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.932731, "supported_languages": null}, "macro.dbt.partition_range": {"unique_id": "macro.dbt.partition_range", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.933462, "supported_languages": null}, "macro.dbt.py_current_timestring": {"unique_id": "macro.dbt.py_current_timestring", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9336908, "supported_languages": null}, "macro.dbt.except": {"unique_id": "macro.dbt.except", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.934013, "supported_languages": null}, "macro.dbt.default__except": {"unique_id": "macro.dbt.default__except", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "name": "default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.934089, "supported_languages": null}, "macro.dbt.replace": {"unique_id": "macro.dbt.replace", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.93448, "supported_languages": null}, "macro.dbt.default__replace": {"unique_id": "macro.dbt.default__replace", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.934644, "supported_languages": null}, "macro.dbt.concat": {"unique_id": "macro.dbt.concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.934966, "supported_languages": null}, "macro.dbt.default__concat": {"unique_id": "macro.dbt.default__concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "name": "default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.935101, "supported_languages": null}, "macro.dbt.length": {"unique_id": "macro.dbt.length", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.935429, "supported_languages": null}, "macro.dbt.default__length": {"unique_id": "macro.dbt.default__length", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "name": "default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9355352, "supported_languages": null}, "macro.dbt.dateadd": {"unique_id": "macro.dbt.dateadd", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.935939, "supported_languages": null}, "macro.dbt.default__dateadd": {"unique_id": "macro.dbt.default__dateadd", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.936107, "supported_languages": null}, "macro.dbt.intersect": {"unique_id": "macro.dbt.intersect", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.936407, "supported_languages": null}, "macro.dbt.default__intersect": {"unique_id": "macro.dbt.default__intersect", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "name": "default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.936482, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"unique_id": "macro.dbt.escape_single_quotes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.936811, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"unique_id": "macro.dbt.default__escape_single_quotes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "name": "default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.936952, "supported_languages": null}, "macro.dbt.right": {"unique_id": "macro.dbt.right", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.937315, "supported_languages": null}, "macro.dbt.default__right": {"unique_id": "macro.dbt.default__right", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "name": "default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9375281, "supported_languages": null}, "macro.dbt.listagg": {"unique_id": "macro.dbt.listagg", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9382021, "supported_languages": null}, "macro.dbt.default__listagg": {"unique_id": "macro.dbt.default__listagg", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.938598, "supported_languages": null}, "macro.dbt.datediff": {"unique_id": "macro.dbt.datediff", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.939003, "supported_languages": null}, "macro.dbt.default__datediff": {"unique_id": "macro.dbt.default__datediff", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.939172, "supported_languages": null}, "macro.dbt.safe_cast": {"unique_id": "macro.dbt.safe_cast", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.939529, "supported_languages": null}, "macro.dbt.default__safe_cast": {"unique_id": "macro.dbt.default__safe_cast", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.939668, "supported_languages": null}, "macro.dbt.hash": {"unique_id": "macro.dbt.hash", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.940002, "supported_languages": null}, "macro.dbt.default__hash": {"unique_id": "macro.dbt.default__hash", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "name": "default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.940159, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"unique_id": "macro.dbt.cast_bool_to_text", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.940483, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"unique_id": "macro.dbt.default__cast_bool_to_text", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.940639, "supported_languages": null}, "macro.dbt.any_value": {"unique_id": "macro.dbt.any_value", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9409668, "supported_languages": null}, "macro.dbt.default__any_value": {"unique_id": "macro.dbt.default__any_value", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "name": "default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.94107, "supported_languages": null}, "macro.dbt.position": {"unique_id": "macro.dbt.position", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9414248, "supported_languages": null}, "macro.dbt.default__position": {"unique_id": "macro.dbt.default__position", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "name": "default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.941557, "supported_languages": null}, "macro.dbt.string_literal": {"unique_id": "macro.dbt.string_literal", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.941866, "supported_languages": null}, "macro.dbt.default__string_literal": {"unique_id": "macro.dbt.default__string_literal", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "name": "default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.941966, "supported_languages": null}, "macro.dbt.type_string": {"unique_id": "macro.dbt.type_string", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9429278, "supported_languages": null}, "macro.dbt.default__type_string": {"unique_id": "macro.dbt.default__type_string", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.943083, "supported_languages": null}, "macro.dbt.type_timestamp": {"unique_id": "macro.dbt.type_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9433112, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"unique_id": "macro.dbt.default__type_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.943464, "supported_languages": null}, "macro.dbt.type_float": {"unique_id": "macro.dbt.type_float", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.943629, "supported_languages": null}, "macro.dbt.default__type_float": {"unique_id": "macro.dbt.default__type_float", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9437819, "supported_languages": null}, "macro.dbt.type_numeric": {"unique_id": "macro.dbt.type_numeric", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9439418, "supported_languages": null}, "macro.dbt.default__type_numeric": {"unique_id": "macro.dbt.default__type_numeric", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.944119, "supported_languages": null}, "macro.dbt.type_bigint": {"unique_id": "macro.dbt.type_bigint", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9442828, "supported_languages": null}, "macro.dbt.default__type_bigint": {"unique_id": "macro.dbt.default__type_bigint", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.944432, "supported_languages": null}, "macro.dbt.type_int": {"unique_id": "macro.dbt.type_int", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9445918, "supported_languages": null}, "macro.dbt.default__type_int": {"unique_id": "macro.dbt.default__type_int", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.944735, "supported_languages": null}, "macro.dbt.type_boolean": {"unique_id": "macro.dbt.type_boolean", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9448981, "supported_languages": null}, "macro.dbt.default__type_boolean": {"unique_id": "macro.dbt.default__type_boolean", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "name": "default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9450428, "supported_languages": null}, "macro.dbt.array_concat": {"unique_id": "macro.dbt.array_concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.945406, "supported_languages": null}, "macro.dbt.default__array_concat": {"unique_id": "macro.dbt.default__array_concat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "name": "default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.945537, "supported_languages": null}, "macro.dbt.bool_or": {"unique_id": "macro.dbt.bool_or", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.945857, "supported_languages": null}, "macro.dbt.default__bool_or": {"unique_id": "macro.dbt.default__bool_or", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "name": "default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.945962, "supported_languages": null}, "macro.dbt.last_day": {"unique_id": "macro.dbt.last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.946367, "supported_languages": null}, "macro.dbt.default_last_day": {"unique_id": "macro.dbt.default_last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9466429, "supported_languages": null}, "macro.dbt.default__last_day": {"unique_id": "macro.dbt.default__last_day", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "name": "default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.946792, "supported_languages": null}, "macro.dbt.split_part": {"unique_id": "macro.dbt.split_part", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.947368, "supported_languages": null}, "macro.dbt.default__split_part": {"unique_id": "macro.dbt.default__split_part", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.947525, "supported_languages": null}, "macro.dbt._split_part_negative": {"unique_id": "macro.dbt._split_part_negative", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.947805, "supported_languages": null}, "macro.dbt.date_trunc": {"unique_id": "macro.dbt.date_trunc", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.948137, "supported_languages": null}, "macro.dbt.default__date_trunc": {"unique_id": "macro.dbt.default__date_trunc", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "name": "default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.948262, "supported_languages": null}, "macro.dbt.array_construct": {"unique_id": "macro.dbt.array_construct", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9486961, "supported_languages": null}, "macro.dbt.default__array_construct": {"unique_id": "macro.dbt.default__array_construct", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.948948, "supported_languages": null}, "macro.dbt.array_append": {"unique_id": "macro.dbt.array_append", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.949314, "supported_languages": null}, "macro.dbt.default__array_append": {"unique_id": "macro.dbt.default__array_append", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "name": "default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9494479, "supported_languages": null}, "macro.dbt.create_schema": {"unique_id": "macro.dbt.create_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.949885, "supported_languages": null}, "macro.dbt.default__create_schema": {"unique_id": "macro.dbt.default__create_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.95008, "supported_languages": null}, "macro.dbt.drop_schema": {"unique_id": "macro.dbt.drop_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.95025, "supported_languages": null}, "macro.dbt.default__drop_schema": {"unique_id": "macro.dbt.default__drop_schema", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.950429, "supported_languages": null}, "macro.dbt.current_timestamp": {"unique_id": "macro.dbt.current_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.950968, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"unique_id": "macro.dbt.default__current_timestamp", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.95112, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"unique_id": "macro.dbt.snapshot_get_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.951262, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"unique_id": "macro.dbt.default__snapshot_get_time", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9513652, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"unique_id": "macro.dbt.current_timestamp_backcompat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.951529, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_backcompat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.951602, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.951765, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.9519281, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"unique_id": "macro.dbt.get_create_index_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.9524548, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"unique_id": "macro.dbt.default__get_create_index_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.95266, "supported_languages": null}, "macro.dbt.create_indexes": {"unique_id": "macro.dbt.create_indexes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.952825, "supported_languages": null}, "macro.dbt.default__create_indexes": {"unique_id": "macro.dbt.default__create_indexes", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.953302, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"unique_id": "macro.dbt.make_intermediate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.956689, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"unique_id": "macro.dbt.default__make_intermediate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.956888, "supported_languages": null}, "macro.dbt.make_temp_relation": {"unique_id": "macro.dbt.make_temp_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.957153, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"unique_id": "macro.dbt.default__make_temp_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.957464, "supported_languages": null}, "macro.dbt.make_backup_relation": {"unique_id": "macro.dbt.make_backup_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9577222, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"unique_id": "macro.dbt.default__make_backup_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.958103, "supported_languages": null}, "macro.dbt.drop_relation": {"unique_id": "macro.dbt.drop_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.958308, "supported_languages": null}, "macro.dbt.default__drop_relation": {"unique_id": "macro.dbt.default__drop_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.958532, "supported_languages": null}, "macro.dbt.truncate_relation": {"unique_id": "macro.dbt.truncate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.958726, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"unique_id": "macro.dbt.default__truncate_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.958935, "supported_languages": null}, "macro.dbt.rename_relation": {"unique_id": "macro.dbt.rename_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.959168, "supported_languages": null}, "macro.dbt.default__rename_relation": {"unique_id": "macro.dbt.default__rename_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.959459, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"unique_id": "macro.dbt.get_or_create_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.959733, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"unique_id": "macro.dbt.default__get_or_create_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.960379, "supported_languages": null}, "macro.dbt.load_cached_relation": {"unique_id": "macro.dbt.load_cached_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.960703, "supported_languages": null}, "macro.dbt.load_relation": {"unique_id": "macro.dbt.load_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.960854, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"unique_id": "macro.dbt.drop_relation_if_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.96108, "supported_languages": null}, "macro.dbt.collect_freshness": {"unique_id": "macro.dbt.collect_freshness", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.961652, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"unique_id": "macro.dbt.default__collect_freshness", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9621272, "supported_languages": null}, "macro.dbt.copy_grants": {"unique_id": "macro.dbt.copy_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.964009, "supported_languages": null}, "macro.dbt.default__copy_grants": {"unique_id": "macro.dbt.default__copy_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.96415, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.9643369, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.964458, "supported_languages": null}, "macro.dbt.should_revoke": {"unique_id": "macro.dbt.should_revoke", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9648588, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"unique_id": "macro.dbt.get_show_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482449.965075, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"unique_id": "macro.dbt.default__get_show_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.965191, "supported_languages": null}, "macro.dbt.get_grant_sql": {"unique_id": "macro.dbt.get_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.96543, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"unique_id": "macro.dbt.default__get_grant_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.965646, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"unique_id": "macro.dbt.get_revoke_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.965888, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"unique_id": "macro.dbt.default__get_revoke_sql", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.96608, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"unique_id": "macro.dbt.get_dcl_statement_list", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9663439, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"unique_id": "macro.dbt.default__get_dcl_statement_list", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.967133, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"unique_id": "macro.dbt.call_dcl_statements", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.967425, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"unique_id": "macro.dbt.default__call_dcl_statements", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.967691, "supported_languages": null}, "macro.dbt.apply_grants": {"unique_id": "macro.dbt.apply_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9679518, "supported_languages": null}, "macro.dbt.default__apply_grants": {"unique_id": "macro.dbt.default__apply_grants", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.96924, "supported_languages": null}, "macro.dbt.alter_column_comment": {"unique_id": "macro.dbt.alter_column_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9701, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"unique_id": "macro.dbt.default__alter_column_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.97029, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"unique_id": "macro.dbt.alter_relation_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.970505, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"unique_id": "macro.dbt.default__alter_relation_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.970679, "supported_languages": null}, "macro.dbt.persist_docs": {"unique_id": "macro.dbt.persist_docs", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.970997, "supported_languages": null}, "macro.dbt.default__persist_docs": {"unique_id": "macro.dbt.default__persist_docs", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.971505, "supported_languages": null}, "macro.dbt.get_catalog": {"unique_id": "macro.dbt.get_catalog", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.973048, "supported_languages": null}, "macro.dbt.default__get_catalog": {"unique_id": "macro.dbt.default__get_catalog", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.97332, "supported_languages": null}, "macro.dbt.information_schema_name": {"unique_id": "macro.dbt.information_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9735382, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"unique_id": "macro.dbt.default__information_schema_name", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.973703, "supported_languages": null}, "macro.dbt.list_schemas": {"unique_id": "macro.dbt.list_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.973904, "supported_languages": null}, "macro.dbt.default__list_schemas": {"unique_id": "macro.dbt.default__list_schemas", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.9741719, "supported_languages": null}, "macro.dbt.check_schema_exists": {"unique_id": "macro.dbt.check_schema_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.974386, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"unique_id": "macro.dbt.default__check_schema_exists", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.974707, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"unique_id": "macro.dbt.list_relations_without_caching", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.97492, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"unique_id": "macro.dbt.default__list_relations_without_caching", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.975086, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"unique_id": "macro.dbt.get_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482449.976916, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"unique_id": "macro.dbt.default__get_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.977175, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"unique_id": "macro.dbt.sql_convert_columns_in_relation", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9774988, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"unique_id": "macro.dbt.get_columns_in_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.977685, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"unique_id": "macro.dbt.default__get_columns_in_query", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9780679, "supported_languages": null}, "macro.dbt.alter_column_type": {"unique_id": "macro.dbt.alter_column_type", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9783318, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"unique_id": "macro.dbt.default__alter_column_type", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.979019, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"unique_id": "macro.dbt.alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482449.979294, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.98017, "supported_languages": null}, "macro.dbt.build_ref_function": {"unique_id": "macro.dbt.build_ref_function", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9818292, "supported_languages": null}, "macro.dbt.build_source_function": {"unique_id": "macro.dbt.build_source_function", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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(\".\"): resolved.quote(database=False, schema=False, identifier=False) | string}) -%}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9823518, "supported_languages": null}, "macro.dbt.build_config_dict": {"unique_id": "macro.dbt.build_config_dict", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {%- for key in model.config.config_keys_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[key] -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.982888, "supported_languages": null}, "macro.dbt.py_script_postfix": {"unique_id": "macro.dbt.py_script_postfix", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "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 def __repr__(self):\n return '{{ this }}'\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.98333, "supported_languages": null}, "macro.dbt.py_script_comment": {"unique_id": "macro.dbt.py_script_comment", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "name": "py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.983412, "supported_languages": null}, "macro.dbt.test_unique": {"unique_id": "macro.dbt.test_unique", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.9840589, "supported_languages": null}, "macro.dbt.test_not_null": {"unique_id": "macro.dbt.test_not_null", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.984331, "supported_languages": null}, "macro.dbt.test_accepted_values": {"unique_id": "macro.dbt.test_accepted_values", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.984641, "supported_languages": null}, "macro.dbt.test_relationships": {"unique_id": "macro.dbt.test_relationships", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482449.984946, "supported_languages": null}, "macro.shopify_source.get_order_columns": {"unique_id": "macro.shopify_source.get_order_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_columns", "macro_sql": "{% macro get_order_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_id\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_discounts\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_line_items_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_float()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"subtotal_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"taxes_included\", \"datatype\": \"boolean\", \"alias\": \"has_taxes_included\"},\n {\"name\": \"total_weight\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"landing_site_base_url\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_number\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cancel_reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"cancelled_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"cancelled_timestamp\"},\n {\"name\": \"cart_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"checkout_token\", \"datatype\": dbt.type_string()},\n {\"name\": \"closed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"closed_timestamp\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"customer_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"financial_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"processing_method\", \"datatype\": dbt.type_string()},\n {\"name\": \"referring_site\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"billing_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"browser_ip\", \"datatype\": dbt.type_string()},\n {\"name\": \"buyer_accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_buyer_accepted_marketing\"},\n {\"name\": \"total_shipping_price_set\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_city\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_country_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_latitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_longitude\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_province_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"shipping_address_zip\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\", \"alias\": \"is_test_order\"},\n {\"name\": \"token\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.000631, "supported_languages": null}, "macro.shopify_source.get_customer_columns": {"unique_id": "macro.shopify_source.get_customer_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_customer_columns", "macro_sql": "{% macro get_customer_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"accepts_marketing\", \"datatype\": \"boolean\", \"alias\": \"has_accepted_marketing\"},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"default_address_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"customer_id\"},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"orders_count\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"phone\", \"datatype\": dbt.type_string()},\n {\"name\": \"state\", \"datatype\": dbt.type_string(), \"alias\": \"account_state\"},\n {\"name\": \"tax_exempt\", \"datatype\": \"boolean\", \"alias\": \"is_tax_exempt\"},\n {\"name\": \"total_spent\", \"datatype\": dbt.type_float()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"verified_email\", \"datatype\": \"boolean\", \"alias\": \"is_verified_email\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.002242, "supported_languages": null}, "macro.shopify_source.get_order_line_refund_columns": {"unique_id": "macro.shopify_source.get_order_line_refund_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_refund_columns", "macro_sql": "{% macro get_order_line_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_refund_id\"},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"order_line_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"subtotal\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"total_tax\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_float()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"restock_type\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.003159, "supported_languages": null}, "macro.shopify_source.get_order_line_columns": {"unique_id": "macro.shopify_source.get_order_line_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_line_columns", "macro_sql": "{% macro get_order_line_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"fulfillable_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"fulfillment_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"gift_card\", \"datatype\": \"boolean\", \"alias\": \"is_gift_card\"},\n {\"name\": \"grams\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_line_id\"},\n {\"name\": \"index\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"pre_tax_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_charge_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_for_shipping_jan_3_rd_2020\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_shipping_interval_frequency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"property_shipping_interval_unit_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_subscription_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"total_discount\", \"datatype\": dbt.type_float()},\n {\"name\": \"variant_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.005482, "supported_languages": null}, "macro.shopify_source.get_product_columns": {"unique_id": "macro.shopify_source.get_product_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_columns", "macro_sql": "{% macro get_product_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"handle\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"product_id\"},\n {\"name\": \"product_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"published_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"published_timestamp\"},\n {\"name\": \"published_scope\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"vendor\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.006643, "supported_languages": null}, "macro.shopify_source.get_product_variant_columns": {"unique_id": "macro.shopify_source.get_product_variant_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_product_variant_columns", "macro_sql": "{% macro get_product_variant_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"variant_id\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"updated_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"updated_timestamp\"},\n {\"name\": \"product_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_item_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"image_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"price\", \"datatype\": dbt.type_float()},\n {\"name\": \"sku\", \"datatype\": dbt.type_string()},\n {\"name\": \"position\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"inventory_policy\", \"datatype\": dbt.type_string()},\n {\"name\": \"compare_at_price\", \"datatype\": dbt.type_float()},\n {\"name\": \"fulfillment_service\", \"datatype\": dbt.type_string()},\n {\"name\": \"inventory_management\", \"datatype\": dbt.type_string()},\n {\"name\": \"taxable\", \"datatype\": \"boolean\", \"alias\": \"is_taxable\"},\n {\"name\": \"barcode\", \"datatype\": dbt.type_string()},\n {\"name\": \"grams\", \"datatype\": dbt.type_float()},\n {\"name\": \"inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"weight\", \"datatype\": dbt.type_float()},\n {\"name\": \"weight_unit\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"option_3\", \"datatype\": dbt.type_string()},\n {\"name\": \"tax_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"old_inventory_quantity\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"requires_shipping\", \"datatype\": \"boolean\", \"alias\": \"is_requiring_shipping\"}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0091038, "supported_languages": null}, "macro.shopify_source.get_transaction_columns": {"unique_id": "macro.shopify_source.get_transaction_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_transaction_columns", "macro_sql": "{% macro get_transaction_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"transaction_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"created_timestamp\"},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp(), \"alias\": \"processed_timestamp\"},\n {\"name\": \"device_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"gateway\", \"datatype\": dbt.type_string()},\n {\"name\": \"source_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"message\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"location_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"parent_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"payment_avs_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_bin\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_cvv_result_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"payment_credit_card_company\", \"datatype\": dbt.type_string()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"receipt\", \"datatype\": dbt.type_string()},\n {\"name\": \"currency_exchange_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_adjustment\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_original_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_final_amount\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"currency_exchange_currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"error_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"test\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{% if target.type in ('redshift','postgres') %}\n {{ columns.append({\"name\": \"authorization\", \"datatype\": dbt.type_string(), \"quote\": True, \"alias\": \"authorization\"}) }}\n{% else %}\n {\"name\": \"authorization\", \"datatype\": dbt.type_string()}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.012168, "supported_languages": null}, "macro.shopify_source.get_refund_columns": {"unique_id": "macro.shopify_source.get_refund_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_refund_columns", "macro_sql": "{% macro get_refund_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"refund_id\"},\n {\"name\": \"note\", \"datatype\": dbt.type_string()},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"processed_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"restock\", \"datatype\": \"boolean\"},\n {\"name\": \"user_id\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_numeric", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.013025, "supported_languages": null}, "macro.shopify_source.get_order_adjustment_columns": {"unique_id": "macro.shopify_source.get_order_adjustment_columns", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "macros/staging_columns.sql", "original_file_path": "macros/staging_columns.sql", "name": "get_order_adjustment_columns", "macro_sql": "{% macro get_order_adjustment_columns() %}\n\n{% set columns = [\n {\"name\": \"id\", \"datatype\": dbt.type_numeric(), \"alias\": \"order_adjustment_id\"},\n {\"name\": \"order_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"refund_id\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"tax_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"kind\", \"datatype\": dbt.type_string()},\n {\"name\": \"reason\", \"datatype\": dbt.type_string()},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_numeric", "macro.dbt.type_float", "macro.dbt.type_string", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.01389, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"unique_id": "macro.dbt_utils.get_url_host", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.014506, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"unique_id": "macro.dbt_utils.default__get_url_host", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.014994, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"unique_id": "macro.dbt_utils.get_url_path", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.015548, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"unique_id": "macro.dbt_utils.default__get_url_path", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0162098, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"unique_id": "macro.dbt_utils.get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.016615, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"unique_id": "macro.dbt_utils.default__get_url_parameter", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0169332, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"unique_id": "macro.dbt_utils.test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.017993, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.01901, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"unique_id": "macro.dbt_utils.test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0199392, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"unique_id": "macro.dbt_utils.default__test_equal_rowcount", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0210109, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"unique_id": "macro.dbt_utils.test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.021746, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"unique_id": "macro.dbt_utils.default__test_relationships_where", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0220869, "supported_languages": null}, "macro.dbt_utils.test_recency": {"unique_id": "macro.dbt_utils.test_recency", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.022939, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"unique_id": "macro.dbt_utils.default__test_recency", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.023813, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"unique_id": "macro.dbt_utils.test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0244029, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"unique_id": "macro.dbt_utils.default__test_not_constant", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.024897, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"unique_id": "macro.dbt_utils.test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.025655, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"unique_id": "macro.dbt_utils.default__test_accepted_range", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.026298, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"unique_id": "macro.dbt_utils.test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.026999, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"unique_id": "macro.dbt_utils.default__test_not_accepted_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0274, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"unique_id": "macro.dbt_utils.test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.027967, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"unique_id": "macro.dbt_utils.default__test_at_least_one", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "name": "default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(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\nselect *\nfrom (\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 {{ model }}\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.028481, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.029221, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0299299, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"unique_id": "macro.dbt_utils.test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.030636, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"unique_id": "macro.dbt_utils.default__test_cardinality_equality", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.031003, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"unique_id": "macro.dbt_utils.test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0315452, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"unique_id": "macro.dbt_utils.default__test_expression_is_true", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.031919, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"unique_id": "macro.dbt_utils.test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.032681, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"unique_id": "macro.dbt_utils.default__test_not_null_proportion", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.033555, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"unique_id": "macro.dbt_utils.test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.034563, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"unique_id": "macro.dbt_utils.default__test_sequential_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0356429, "supported_languages": null}, "macro.dbt_utils.test_equality": {"unique_id": "macro.dbt_utils.test_equality", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.036554, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"unique_id": "macro.dbt_utils.default__test_equality", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.037552, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"unique_id": "macro.dbt_utils.test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.038176, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"unique_id": "macro.dbt_utils.default__test_not_empty_string", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0385249, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.04202, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.043689, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"unique_id": "macro.dbt_utils.pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.044107, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"unique_id": "macro.dbt_utils.default__pretty_log_format", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "name": "default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0442822, "supported_languages": null}, "macro.dbt_utils._is_relation": {"unique_id": "macro.dbt_utils._is_relation", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0448651, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"unique_id": "macro.dbt_utils.pretty_time", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.045284, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"unique_id": "macro.dbt_utils.default__pretty_time", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "name": "default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.045496, "supported_languages": null}, "macro.dbt_utils.log_info": {"unique_id": "macro.dbt_utils.log_info", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.045867, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"unique_id": "macro.dbt_utils.default__log_info", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "name": "default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.046056, "supported_languages": null}, "macro.dbt_utils.slugify": {"unique_id": "macro.dbt_utils.slugify", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.046803, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"unique_id": "macro.dbt_utils._is_ephemeral", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.047779, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"unique_id": "macro.dbt_utils.get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.048625, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"unique_id": "macro.dbt_utils.default__get_intervals_between", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.049394, "supported_languages": null}, "macro.dbt_utils.date_spine": {"unique_id": "macro.dbt_utils.date_spine", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.049664, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"unique_id": "macro.dbt_utils.default__date_spine", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.05005, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"unique_id": "macro.dbt_utils.nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.050497, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"unique_id": "macro.dbt_utils.default__nullcheck_table", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0508611, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"unique_id": "macro.dbt_utils.get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0516522, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.052576, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"unique_id": "macro.dbt_utils.get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.05352, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"unique_id": "macro.dbt_utils.default__get_powers_of_two", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.053966, "supported_languages": null}, "macro.dbt_utils.generate_series": {"unique_id": "macro.dbt_utils.generate_series", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.054164, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"unique_id": "macro.dbt_utils.default__generate_series", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.054723, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"unique_id": "macro.dbt_utils.get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.055538, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.056441, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.056971, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0572622, "supported_languages": null}, "macro.dbt_utils.star": {"unique_id": "macro.dbt_utils.star", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0586, "supported_languages": null}, "macro.dbt_utils.default__star": {"unique_id": "macro.dbt_utils.default__star", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.060225, "supported_languages": null}, "macro.dbt_utils.unpivot": {"unique_id": "macro.dbt_utils.unpivot", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0616791, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"unique_id": "macro.dbt_utils.default__unpivot", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0634549, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"unique_id": "macro.dbt_utils.safe_divide", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "name": "safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.063874, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"unique_id": "macro.dbt_utils.default__safe_divide", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "name": "default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0640152, "supported_languages": null}, "macro.dbt_utils.union_relations": {"unique_id": "macro.dbt_utils.union_relations", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0671308, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"unique_id": "macro.dbt_utils.default__union_relations", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1671482450.0706182, "supported_languages": null}, "macro.dbt_utils.group_by": {"unique_id": "macro.dbt_utils.group_by", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.071059, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"unique_id": "macro.dbt_utils.default__group_by", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.071321, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"unique_id": "macro.dbt_utils.deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0721312, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"unique_id": "macro.dbt_utils.default__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0723479, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"unique_id": "macro.dbt_utils.redshift__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.072543, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"unique_id": "macro.dbt_utils.postgres__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0727282, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"unique_id": "macro.dbt_utils.snowflake__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.072891, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"unique_id": "macro.dbt_utils.bigquery__deduplicate", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.073063, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"unique_id": "macro.dbt_utils.surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.073531, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"unique_id": "macro.dbt_utils.default__surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.073772, "supported_languages": null}, "macro.dbt_utils.safe_add": {"unique_id": "macro.dbt_utils.safe_add", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.074234, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"unique_id": "macro.dbt_utils.default__safe_add", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.074775, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"unique_id": "macro.dbt_utils.nullcheck", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.075187, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"unique_id": "macro.dbt_utils.default__nullcheck", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.075524, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.0771751, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.077535, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.07833, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "name": "_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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.078836, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"unique_id": "macro.dbt_utils.get_column_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.079999, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"unique_id": "macro.dbt_utils.default__get_column_values", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.081527, "supported_languages": null}, "macro.dbt_utils.pivot": {"unique_id": "macro.dbt_utils.pivot", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.082624, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"unique_id": "macro.dbt_utils.default__pivot", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.08347, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.084016, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.084735, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"unique_id": "macro.dbt_utils.width_bucket", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.086161, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"unique_id": "macro.dbt_utils.default__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.086603, "supported_languages": null}, "macro.dbt_utils.redshift__width_bucket": {"unique_id": "macro.dbt_utils.redshift__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "redshift__width_bucket", "macro_sql": "{% macro redshift__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 exactly at the bucket edge\n case\n when\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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.087043, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"unique_id": "macro.dbt_utils.snowflake__width_bucket", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0872252, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"unique_id": "macro.dbt_utils.get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.087677, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.088268, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"unique_id": "macro.dbt_utils.generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.088793, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"unique_id": "macro.dbt_utils.default__generate_surrogate_key", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "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": 1671482450.089456, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"unique_id": "macro.dbt_utils.get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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", "resource_type": "macro", "tags": [], "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": 1671482450.089916, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"unique_id": "macro.dbt_utils.default__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.090056, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.090194, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"unique_id": "macro.dbt_utils.get_single_value", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.090775, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"unique_id": "macro.dbt_utils.default__get_single_value", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.0915918, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"unique_id": "macro.dbt_utils.degrees_to_radians", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.092698, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"unique_id": "macro.dbt_utils.haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.093036, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"unique_id": "macro.dbt_utils.default__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.093664, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"unique_id": "macro.dbt_utils.bigquery__haversine_distance", "package_name": "dbt_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.094557, "supported_languages": null}, "macro.klaviyo_source.get_campaign_columns": {"unique_id": "macro.klaviyo_source.get_campaign_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_campaign_columns.sql", "original_file_path": "macros/get_campaign_columns.sql", "name": "get_campaign_columns", "macro_sql": "{% macro get_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"campaign_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email_template_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_email\", \"datatype\": dbt.type_string()},\n {\"name\": \"from_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"is_segmented\", \"datatype\": \"boolean\"},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"send_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"sent_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"status_label\", \"datatype\": dbt.type_string()},\n {\"name\": \"subject\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482450.096609, "supported_languages": null}, "macro.klaviyo_source.get_metric_columns": {"unique_id": "macro.klaviyo_source.get_metric_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_metric_columns.sql", "original_file_path": "macros/get_metric_columns.sql", "name": "get_metric_columns", "macro_sql": "{% macro get_metric_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"integration_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482450.0976598, "supported_languages": null}, "macro.klaviyo_source.get_flow_columns": {"unique_id": "macro.klaviyo_source.get_flow_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_flow_columns.sql", "original_file_path": "macros/get_flow_columns.sql", "name": "get_flow_columns", "macro_sql": "{% macro get_flow_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"customer_filter\", \"datatype\": dbt.type_string()}\n] %}\n\n{% if target.type == 'databricks' %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": False} ) }}\n{% else %}\n {{ columns.append( {\"name\": \"trigger\", \"datatype\": dbt.type_string(), \"quote\": True} ) }}\n{% endif %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482450.0993102, "supported_languages": null}, "macro.klaviyo_source.get_integration_columns": {"unique_id": "macro.klaviyo_source.get_integration_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_integration_columns.sql", "original_file_path": "macros/get_integration_columns.sql", "name": "get_integration_columns", "macro_sql": "{% macro get_integration_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"category\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "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": 1671482450.1001248, "supported_languages": null}, "macro.klaviyo_source.get_person_columns": {"unique_id": "macro.klaviyo_source.get_person_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_person_columns.sql", "original_file_path": "macros/get_person_columns.sql", "name": "get_person_columns", "macro_sql": "{% macro get_person_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"address_1\", \"datatype\": dbt.type_string()},\n {\"name\": \"address_2\", \"datatype\": dbt.type_string()},\n {\"name\": \"city\", \"datatype\": dbt.type_string()},\n {\"name\": \"country\", \"datatype\": dbt.type_string()},\n {\"name\": \"created\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"email\", \"datatype\": dbt.type_string()},\n {\"name\": \"first_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"last_name\", \"datatype\": dbt.type_string()},\n {\"name\": \"latitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"longitude\", \"datatype\": dbt.type_float()},\n {\"name\": \"organization\", \"datatype\": dbt.type_string()},\n {\"name\": \"phone_number\", \"datatype\": dbt.type_string()},\n {\"name\": \"region\", \"datatype\": dbt.type_string()},\n {\"name\": \"timezone\", \"datatype\": dbt.type_string()},\n {\"name\": \"title\", \"datatype\": dbt.type_string()},\n {\"name\": \"updated\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"zip\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__person_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_float", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.102651, "supported_languages": null}, "macro.klaviyo_source.get_event_columns": {"unique_id": "macro.klaviyo_source.get_event_columns", "package_name": "klaviyo_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/klaviyo_source", "path": "macros/get_event_columns.sql", "original_file_path": "macros/get_event_columns.sql", "name": "get_event_columns", "macro_sql": "{% macro get_event_columns() %}\n\n{% set columns = [\n {\"name\": \"_fivetran_deleted\", \"datatype\": \"boolean\"},\n {\"name\": \"_fivetran_synced\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"_variation\", \"datatype\": dbt.type_string()},\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"datetime\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"flow_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"flow_message_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_string()},\n {\"name\": \"metric_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"person_id\", \"datatype\": dbt.type_string()},\n {\"name\": \"timestamp\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"uuid\", \"datatype\": dbt.type_string()},\n {\"name\": \"property_value\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('klaviyo__event_pass_through_columns')) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.fivetran_utils.add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1045902, "supported_languages": null}, "macro.spark_utils.get_tables": {"unique_id": "macro.spark_utils.get_tables", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.109921, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"unique_id": "macro.spark_utils.get_delta_tables", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.110701, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"unique_id": "macro.spark_utils.get_statistic_columns", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.111695, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"unique_id": "macro.spark_utils.spark_optimize_delta_tables", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.112493, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.113305, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"unique_id": "macro.spark_utils.spark_analyze_tables", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.114298, "supported_languages": null}, "macro.spark_utils.spark__concat": {"unique_id": "macro.spark_utils.spark__concat", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "name": "spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.114658, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"unique_id": "macro.spark_utils.spark__type_numeric", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "name": "spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1148758, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"unique_id": "macro.spark_utils.spark__dateadd", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1179352, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"unique_id": "macro.spark_utils.spark__datediff", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.125813, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"unique_id": "macro.spark_utils.spark__current_timestamp", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.126104, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "name": "spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.126188, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"unique_id": "macro.spark_utils.spark__split_part", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.126894, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1286411, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.129029, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.129332, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "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": 1671482450.129639, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"unique_id": "macro.spark_utils.assert_not_null", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.130112, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"unique_id": "macro.spark_utils.default__assert_not_null", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.130338, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"unique_id": "macro.spark_utils.spark__convert_timezone", "package_name": "spark_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.130661, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"unique_id": "macro.fivetran_utils.enabled_vars", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.131223, "supported_languages": null}, "macro.fivetran_utils.percentile": {"unique_id": "macro.fivetran_utils.percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1323001, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"unique_id": "macro.fivetran_utils.default__percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.132481, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"unique_id": "macro.fivetran_utils.redshift__percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.132651, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"unique_id": "macro.fivetran_utils.bigquery__percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.132823, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"unique_id": "macro.fivetran_utils.postgres__percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.132985, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"unique_id": "macro.fivetran_utils.spark__percentile", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.133184, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"unique_id": "macro.fivetran_utils.pivot_json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.134412, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"unique_id": "macro.fivetran_utils.persist_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1352031, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"unique_id": "macro.fivetran_utils.json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1363578, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"unique_id": "macro.fivetran_utils.default__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1366122, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"unique_id": "macro.fivetran_utils.redshift__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.136863, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"unique_id": "macro.fivetran_utils.bigquery__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.13711, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"unique_id": "macro.fivetran_utils.postgres__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.137355, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"unique_id": "macro.fivetran_utils.snowflake__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.137627, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"unique_id": "macro.fivetran_utils.spark__json_parse", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.137898, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"unique_id": "macro.fivetran_utils.max_bool", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.138315, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"unique_id": "macro.fivetran_utils.default__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1384199, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"unique_id": "macro.fivetran_utils.snowflake__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.138519, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"unique_id": "macro.fivetran_utils.bigquery__max_bool", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "name": "bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.138623, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"unique_id": "macro.fivetran_utils.calculated_fields", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.139083, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"unique_id": "macro.fivetran_utils.seed_data_helper", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.13976, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"unique_id": "macro.fivetran_utils.fill_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.140625, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"unique_id": "macro.fivetran_utils.string_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.141173, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"unique_id": "macro.fivetran_utils.default__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1413069, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"unique_id": "macro.fivetran_utils.snowflake__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.141439, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"unique_id": "macro.fivetran_utils.redshift__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1415749, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"unique_id": "macro.fivetran_utils.spark__string_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.141786, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"unique_id": "macro.fivetran_utils.timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.14452, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"unique_id": "macro.fivetran_utils.default__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.144691, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1448479, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.145001, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.146694, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"unique_id": "macro.fivetran_utils.try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.147587, "supported_languages": null}, "macro.fivetran_utils.default__safe_cast": {"unique_id": "macro.fivetran_utils.default__safe_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1477299, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"unique_id": "macro.fivetran_utils.redshift__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.148006, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"unique_id": "macro.fivetran_utils.postgres__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.148291, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"unique_id": "macro.fivetran_utils.snowflake__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.148422, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"unique_id": "macro.fivetran_utils.bigquery__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1485498, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"unique_id": "macro.fivetran_utils.spark__try_cast", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "name": "spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.148674, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"unique_id": "macro.fivetran_utils.source_relation", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.149226, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"unique_id": "macro.fivetran_utils.default__source_relation", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.149802, "supported_languages": null}, "macro.fivetran_utils.first_value": {"unique_id": "macro.fivetran_utils.first_value", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.150358, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"unique_id": "macro.fivetran_utils.default__first_value", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1505642, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"unique_id": "macro.fivetran_utils.redshift__first_value", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.15078, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"unique_id": "macro.fivetran_utils.add_dbt_source_relation", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.151125, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"unique_id": "macro.fivetran_utils.add_pass_through_columns", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1523688, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"unique_id": "macro.fivetran_utils.union_relations", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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", "resource_type": "macro", "tags": [], "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": 1671482450.1563342, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"unique_id": "macro.fivetran_utils.union_tables", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "name": "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 -%}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.156697, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"unique_id": "macro.fivetran_utils.snowflake_seed_data", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1571589, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"unique_id": "macro.fivetran_utils.fill_staging_columns", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.158727, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"unique_id": "macro.fivetran_utils.quote_column", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "name": "quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark') %}\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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.159283, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"unique_id": "macro.fivetran_utils.json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.159937, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"unique_id": "macro.fivetran_utils.default__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.160091, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"unique_id": "macro.fivetran_utils.snowflake__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.160243, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"unique_id": "macro.fivetran_utils.redshift__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.160418, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"unique_id": "macro.fivetran_utils.bigquery__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1605718, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"unique_id": "macro.fivetran_utils.postgres__json_extract", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "name": "postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1607192, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"unique_id": "macro.fivetran_utils.collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.161481, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"unique_id": "macro.fivetran_utils.default__collect_freshness", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.162485, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"unique_id": "macro.fivetran_utils.timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.163379, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"unique_id": "macro.fivetran_utils.default__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.163567, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1637518, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"unique_id": "macro.fivetran_utils.redshift__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.163935, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"unique_id": "macro.fivetran_utils.postgres__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.164124, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"unique_id": "macro.fivetran_utils.spark__timestamp_add", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "name": "spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.164416, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"unique_id": "macro.fivetran_utils.ceiling", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.16481, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"unique_id": "macro.fivetran_utils.default__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.164942, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"unique_id": "macro.fivetran_utils.snowflake__ceiling", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "name": "snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1650481, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1658208, "supported_languages": null}, "macro.fivetran_utils.union_data": {"unique_id": "macro.fivetran_utils.union_data", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1673448, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"unique_id": "macro.fivetran_utils.default__union_data", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "name": "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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% elif var(union_database_variable, none) %}\n\n {% set relations = [] %}\n\n {% for database in var(union_database_variable) %}\n\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\n {% do relations.append(relation) %}\n \n {% endif %}\n\n {% endfor %}\n\n {{ dbt_utils.union_relations(relations) }}\n\n{% else %}\n\n select * \n from {{ var(default_variable) }}\n\n{% endif %}\n\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.170032, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"unique_id": "macro.fivetran_utils.dummy_coalesce_value", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1716568, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"unique_id": "macro.fivetran_utils.array_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.172051, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"unique_id": "macro.fivetran_utils.default__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1721659, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"unique_id": "macro.fivetran_utils.redshift__array_agg", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "name": "redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.1722739, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"unique_id": "macro.fivetran_utils.empty_variable_warning", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.172815, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"unique_id": "macro.fivetran_utils.enabled_vars_one_true", "package_name": "fivetran_utils", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "name": "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 %}", "resource_type": "macro", "tags": [], "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1671482450.173325, "supported_languages": null}}, "docs": {"dbt.__overview__": {"unique_id": "dbt.__overview__", "package_name": "dbt", "root_path": "/opt/homebrew/Cellar/dbt-postgres/1.3.0/libexec/lib/python3.9/site-packages/dbt/include/global_project", "path": "overview.md", "original_file_path": "docs/overview.md", "name": "__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"}, "shopify_source._fivetran_synced": {"unique_id": "shopify_source._fivetran_synced", "package_name": "shopify_source", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests/dbt_packages/shopify_source", "path": "docs.md", "original_file_path": "models/docs.md", "name": "_fivetran_synced", "block_contents": "The time when a record was last updated by Fivetran."}}, "exposures": {}, "metrics": {}, "selectors": {}, "disabled": {"seed.shopify_holistic_reporting_integration_tests.flow_snowflake": [{"resource_type": "seed", "depends_on": {"macros": [], "nodes": []}, "config": {"enabled": false, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "quoting": {}, "column_types": {"_fivetran_synced": "timestamp"}, "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": []}, "database": "postgres", "schema": "shopify_holistic_reporting_integration_tests", "fqn": ["shopify_holistic_reporting_integration_tests", "flow_snowflake"], "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow_snowflake", "raw_code": "", "language": "sql", "package_name": "shopify_holistic_reporting_integration_tests", "root_path": "/Users/joseph.markiewicz/Documents/dbt_packages/shopify_holistic_reporting/dbt_shopify_holistic_reporting/integration_tests", "path": "flow_snowflake.csv", "original_file_path": "seeds/flow_snowflake.csv", "name": "flow_snowflake", "alias": "flow_snowflake", "checksum": {"name": "sha256", "checksum": "6bdc1fd92ee1a5bd818f2c9dc35cb33e0b4549d4d0b325569e0518843ce02711"}, "tags": [], "refs": [], "sources": [], "metrics": [], "description": "", "columns": {}, "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "compiled_path": null, "build_path": null, "deferred": false, "unrendered_config": {"quote_columns": "{{ true if target.type in ('redshift', 'postgres') else false }}", "column_types": {"_fivetran_synced": "timestamp"}, "enabled": "{{ true if target.type == 'snowflake' else false }}"}, "created_at": 1671482450.4348412, "config_call_dict": {}}]}, "parent_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": [], "seed.shopify_holistic_reporting_integration_tests.flow": [], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": [], "seed.shopify_holistic_reporting_integration_tests.integration": [], "seed.shopify_holistic_reporting_integration_tests.metric": [], "seed.shopify_holistic_reporting_integration_tests.person": [], "seed.shopify_holistic_reporting_integration_tests.event": [], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": [], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": [], "seed.shopify_holistic_reporting_integration_tests.campaign": [], "model.shopify_source.stg_shopify__order_line": ["model.shopify_source.stg_shopify__order_line_tmp", "model.shopify_source.stg_shopify__order_line_tmp"], "model.shopify_source.stg_shopify__refund": ["model.shopify_source.stg_shopify__refund_tmp", "model.shopify_source.stg_shopify__refund_tmp"], "model.shopify_source.stg_shopify__product": ["model.shopify_source.stg_shopify__product_tmp", "model.shopify_source.stg_shopify__product_tmp"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify_source.stg_shopify__product_variant_tmp", "model.shopify_source.stg_shopify__product_variant_tmp"], "model.shopify_source.stg_shopify__order": ["model.shopify_source.stg_shopify__order_tmp", "model.shopify_source.stg_shopify__order_tmp"], "model.shopify_source.stg_shopify__transaction": ["model.shopify_source.stg_shopify__transaction_tmp", "model.shopify_source.stg_shopify__transaction_tmp"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify_source.stg_shopify__order_adjustment_tmp", "model.shopify_source.stg_shopify__order_adjustment_tmp"], "model.shopify_source.stg_shopify__customer": ["model.shopify_source.stg_shopify__customer_tmp", "model.shopify_source.stg_shopify__customer_tmp"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify_source.stg_shopify__order_line_refund_tmp", "model.shopify_source.stg_shopify__order_line_refund_tmp"], "model.shopify_source.stg_shopify__customer_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"], "model.shopify_source.stg_shopify__order_line_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"], "model.shopify_source.stg_shopify__refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"], "model.shopify_source.stg_shopify__product_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_data"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"], "model.shopify_source.stg_shopify__transaction_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"], "model.shopify_source.stg_shopify__product_variant_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"], "model.shopify_source.stg_shopify__order_tmp": ["seed.shopify_holistic_reporting_integration_tests.shopify_order_data"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo_source.stg_klaviyo__person_tmp", "model.klaviyo_source.stg_klaviyo__person_tmp"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp", "model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp", "model.klaviyo_source.stg_klaviyo__metric_tmp"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp", "model.klaviyo_source.stg_klaviyo__integration_tmp"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp", "model.klaviyo_source.stg_klaviyo__flow_tmp"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo_source.stg_klaviyo__event_tmp", "model.klaviyo_source.stg_klaviyo__event_tmp"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["seed.shopify_holistic_reporting_integration_tests.event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["seed.shopify_holistic_reporting_integration_tests.metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["seed.shopify_holistic_reporting_integration_tests.campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["seed.shopify_holistic_reporting_integration_tests.integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["seed.shopify_holistic_reporting_integration_tests.flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["seed.shopify_holistic_reporting_integration_tests.person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.klaviyo__events"], "model.klaviyo.klaviyo__persons": ["model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__flows": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo.klaviyo__campaigns": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo.klaviyo__events": ["model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo.int_klaviyo__event_attribution", "model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__person_campaign_flow", "model.klaviyo.klaviyo__person_campaign_flow"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo_source.stg_klaviyo__event"], "model.shopify.shopify__customer_cohorts": ["model.shopify.shopify__calendar", "model.shopify.shopify__customers", "model.shopify.shopify__orders"], "model.shopify.shopify__orders": ["model.shopify.shopify__orders__order_line_aggregates", "model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify.shopify__products": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders", "model.shopify_source.stg_shopify__product"], "model.shopify.shopify__transactions": ["model.shopify_source.stg_shopify__transaction"], "model.shopify.shopify__customers": ["model.shopify.shopify__customers__order_aggregates", "model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__orders__order_refunds", "model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__product_variant"], "model.shopify.shopify__calendar": [], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify_source.stg_shopify__order_line"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__transactions", "model.shopify_source.stg_shopify__order"], "model.shopify.shopify__orders__order_refunds": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.klaviyo.klaviyo__events", "model.shopify.shopify__orders", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify.shopify__order_lines", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify.shopify__customers", "model.shopify.shopify__customers"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.klaviyo.klaviyo__events"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": ["model.shopify_source.stg_shopify__customer"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": ["model.shopify_source.stg_shopify__order_line_refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": ["model.shopify_source.stg_shopify__order_line"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": ["model.shopify_source.stg_shopify__order"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": ["model.shopify_source.stg_shopify__product"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": ["model.shopify_source.stg_shopify__product_variant"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": ["model.shopify_source.stg_shopify__transaction"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": ["model.shopify_source.stg_shopify__refund"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": ["model.shopify_source.stg_shopify__order_adjustment"], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": ["model.klaviyo_source.stg_klaviyo__campaign"], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": ["model.klaviyo_source.stg_klaviyo__event"], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": ["model.klaviyo_source.stg_klaviyo__flow"], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": ["model.klaviyo_source.stg_klaviyo__integration"], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": ["model.klaviyo_source.stg_klaviyo__person"], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": ["model.klaviyo_source.stg_klaviyo__metric"], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": ["model.klaviyo.klaviyo__events"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": ["model.klaviyo.klaviyo__events"], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": ["model.klaviyo.klaviyo__person_campaign_flow"], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": ["model.klaviyo.klaviyo__campaigns"], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": ["model.klaviyo.klaviyo__flows"], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": ["model.klaviyo.klaviyo__persons"], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": ["model.klaviyo.int_klaviyo__event_attribution"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": ["model.klaviyo.int_klaviyo__campaign_flow_metrics"], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": ["model.klaviyo.int_klaviyo__person_metrics"], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": ["model.klaviyo.int_klaviyo__person_metrics"], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": ["model.shopify.shopify__customer_cohorts"], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": ["model.shopify.shopify__customer_cohorts"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": ["model.shopify.shopify__orders"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": ["model.shopify.shopify__customers"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": ["model.shopify.shopify__products"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": ["model.shopify.shopify__order_lines"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": ["model.shopify.shopify__transactions"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": ["model.shopify.shopify__customers__order_aggregates"], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": ["model.shopify.shopify__orders__order_line_aggregates"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": ["model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}, "child_map": {"seed.shopify_holistic_reporting_integration_tests.shopify_order_data": ["model.shopify_source.stg_shopify__order_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data": ["model.shopify_source.stg_shopify__order_line_refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data": ["model.shopify_source.stg_shopify__order_adjustment_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data": ["model.shopify_source.stg_shopify__product_variant_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data": ["model.shopify_source.stg_shopify__refund_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data": ["model.shopify_source.stg_shopify__transaction_tmp"], "seed.shopify_holistic_reporting_integration_tests.flow": ["model.klaviyo_source.stg_klaviyo__flow_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_product_data": ["model.shopify_source.stg_shopify__product_tmp"], "seed.shopify_holistic_reporting_integration_tests.integration": ["model.klaviyo_source.stg_klaviyo__integration_tmp"], "seed.shopify_holistic_reporting_integration_tests.metric": ["model.klaviyo_source.stg_klaviyo__metric_tmp"], "seed.shopify_holistic_reporting_integration_tests.person": ["model.klaviyo_source.stg_klaviyo__person_tmp"], "seed.shopify_holistic_reporting_integration_tests.event": ["model.klaviyo_source.stg_klaviyo__event_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data": ["model.shopify_source.stg_shopify__customer_tmp"], "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data": ["model.shopify_source.stg_shopify__order_line_tmp"], "seed.shopify_holistic_reporting_integration_tests.campaign": ["model.klaviyo_source.stg_klaviyo__campaign_tmp"], "model.shopify_source.stg_shopify__order_line": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders__order_line_aggregates", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"], "model.shopify_source.stg_shopify__refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"], "model.shopify_source.stg_shopify__product": ["model.shopify.shopify__products", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"], "model.shopify_source.stg_shopify__product_variant": ["model.shopify.shopify__order_lines", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"], "model.shopify_source.stg_shopify__order": ["model.shopify.shopify__customers__order_aggregates", "model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"], "model.shopify_source.stg_shopify__transaction": ["model.shopify.shopify__transactions", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"], "model.shopify_source.stg_shopify__order_adjustment": ["model.shopify.shopify__orders", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"], "model.shopify_source.stg_shopify__customer": ["model.shopify.shopify__customers", "model.shopify.shopify__customers", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"], "model.shopify_source.stg_shopify__order_line_refund": ["model.shopify.shopify__orders__order_refunds", "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"], "model.shopify_source.stg_shopify__customer_tmp": ["model.shopify_source.stg_shopify__customer", "model.shopify_source.stg_shopify__customer"], "model.shopify_source.stg_shopify__order_line_tmp": ["model.shopify_source.stg_shopify__order_line", "model.shopify_source.stg_shopify__order_line"], "model.shopify_source.stg_shopify__refund_tmp": ["model.shopify_source.stg_shopify__refund", "model.shopify_source.stg_shopify__refund"], "model.shopify_source.stg_shopify__product_tmp": ["model.shopify_source.stg_shopify__product", "model.shopify_source.stg_shopify__product"], "model.shopify_source.stg_shopify__order_adjustment_tmp": ["model.shopify_source.stg_shopify__order_adjustment", "model.shopify_source.stg_shopify__order_adjustment"], "model.shopify_source.stg_shopify__order_line_refund_tmp": ["model.shopify_source.stg_shopify__order_line_refund", "model.shopify_source.stg_shopify__order_line_refund"], "model.shopify_source.stg_shopify__transaction_tmp": ["model.shopify_source.stg_shopify__transaction", "model.shopify_source.stg_shopify__transaction"], "model.shopify_source.stg_shopify__product_variant_tmp": ["model.shopify_source.stg_shopify__product_variant", "model.shopify_source.stg_shopify__product_variant"], "model.shopify_source.stg_shopify__order_tmp": ["model.shopify_source.stg_shopify__order", "model.shopify_source.stg_shopify__order"], "model.klaviyo_source.stg_klaviyo__person": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__persons", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24", "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27", "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa", "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"], "model.klaviyo_source.stg_klaviyo__campaign": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff", "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"], "model.klaviyo_source.stg_klaviyo__metric": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5", "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"], "model.klaviyo_source.stg_klaviyo__integration": ["model.klaviyo.klaviyo__events", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21", "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"], "model.klaviyo_source.stg_klaviyo__flow": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__flows", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481", "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"], "model.klaviyo_source.stg_klaviyo__event": ["model.klaviyo.int_klaviyo__event_attribution", "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7", "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"], "model.klaviyo_source.stg_klaviyo__event_tmp": ["model.klaviyo_source.stg_klaviyo__event", "model.klaviyo_source.stg_klaviyo__event"], "model.klaviyo_source.stg_klaviyo__metric_tmp": ["model.klaviyo_source.stg_klaviyo__metric", "model.klaviyo_source.stg_klaviyo__metric"], "model.klaviyo_source.stg_klaviyo__campaign_tmp": ["model.klaviyo_source.stg_klaviyo__campaign", "model.klaviyo_source.stg_klaviyo__campaign"], "model.klaviyo_source.stg_klaviyo__integration_tmp": ["model.klaviyo_source.stg_klaviyo__integration", "model.klaviyo_source.stg_klaviyo__integration"], "model.klaviyo_source.stg_klaviyo__flow_tmp": ["model.klaviyo_source.stg_klaviyo__flow", "model.klaviyo_source.stg_klaviyo__flow"], "model.klaviyo_source.stg_klaviyo__person_tmp": ["model.klaviyo_source.stg_klaviyo__person", "model.klaviyo_source.stg_klaviyo__person"], "model.klaviyo.klaviyo__person_campaign_flow": ["model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__campaign_flow_metrics", "model.klaviyo.int_klaviyo__person_metrics", "model.klaviyo.int_klaviyo__person_metrics", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079", "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"], "model.klaviyo.klaviyo__persons": ["model.shopify_holistic_reporting.int__klaviyo_person_rollup", "model.shopify_holistic_reporting.int__klaviyo_person_rollup", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3", "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d", "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a", "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"], "model.klaviyo.klaviyo__flows": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc", "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"], "model.klaviyo.klaviyo__campaigns": ["test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28", "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"], "model.klaviyo.klaviyo__events": ["model.klaviyo.klaviyo__person_campaign_flow", "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174", "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"], "model.klaviyo.int_klaviyo__campaign_flow_metrics": ["model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__campaigns", "model.klaviyo.klaviyo__flows", "model.klaviyo.klaviyo__flows", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"], "model.klaviyo.int_klaviyo__person_metrics": ["model.klaviyo.klaviyo__persons", "model.klaviyo.klaviyo__persons", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b", "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"], "model.klaviyo.int_klaviyo__event_attribution": ["model.klaviyo.klaviyo__events", "model.klaviyo.klaviyo__events", "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c", "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"], "model.shopify.shopify__customer_cohorts": ["test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925", "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"], "model.shopify.shopify__orders": ["model.shopify.shopify__customer_cohorts", "model.shopify.shopify__products", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"], "model.shopify.shopify__products": ["test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"], "model.shopify.shopify__transactions": ["model.shopify.shopify__customers__order_aggregates", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"], "model.shopify.shopify__customers": ["model.shopify.shopify__customer_cohorts", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "model.shopify_holistic_reporting.int__shopify_customer_rollup", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"], "model.shopify.shopify__order_lines": ["model.shopify.shopify__products", "model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"], "model.shopify.shopify__calendar": ["model.shopify.shopify__customer_cohorts"], "model.shopify.shopify__orders__order_line_aggregates": ["model.shopify.shopify__orders", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"], "model.shopify.shopify__customers__order_aggregates": ["model.shopify.shopify__customers", "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"], "model.shopify.shopify__orders__order_refunds": ["model.shopify.shopify__order_lines", "model.shopify.shopify__orders"], "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"], "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution": ["model.shopify_holistic_reporting.int__daily_shopify_customer_orders", "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"], "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics": ["test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"], "model.shopify_holistic_reporting.int__daily_shopify_customer_orders": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__shopify_customer_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics": ["model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics", "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"], "model.shopify_holistic_reporting.int__klaviyo_person_rollup": ["model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced", "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35": [], "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0": [], "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff": [], "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7": [], "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481": [], "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21": [], "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa": [], "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014": [], "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24": [], "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078": [], "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5": [], "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174": [], "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079": [], "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28": [], "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc": [], "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a": [], "test.klaviyo.unique_klaviyo__persons_email.a330194dd6": [], "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3": [], "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81": [], "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67": [], "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b": [], "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a": [], "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9": [], "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd": [], "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb": [], "source.shopify_source.shopify.order": [], "source.shopify_source.shopify.customer": [], "source.shopify_source.shopify.order_line": [], "source.shopify_source.shopify.order_line_refund": [], "source.shopify_source.shopify.product": [], "source.shopify_source.shopify.product_variant": [], "source.shopify_source.shopify.transaction": [], "source.shopify_source.shopify.refund": [], "source.shopify_source.shopify.order_adjustment": [], "source.klaviyo_source.klaviyo.campaign": [], "source.klaviyo_source.klaviyo.event": [], "source.klaviyo_source.klaviyo.flow": [], "source.klaviyo_source.klaviyo.integration": [], "source.klaviyo_source.klaviyo.person": [], "source.klaviyo_source.klaviyo.metric": []}} \ No newline at end of file diff --git a/docs/partial_parse.msgpack b/docs/partial_parse.msgpack deleted file mode 100644 index 5dcea590aad59add7a75a1cfdc07fdbc2edfa30c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341335 zcmeFaYm8;rl^!Na9{*?uNX9nuBLT)oO;J_Vs>gjlDD`-nRFl&qiDcN#5yl$%^4#;N zy6Ri^7Vo25MTrijd0@uz*lKDV!9adYqJHxI5=BWQMUMc-!36#>m@m#QVg zd&5E4+x*!_e(^>yaJ&7$|H(DC-*dfzO=1D^+ZaVHp!0er_FdgEtrJT)B>_|LxR4g1q=fDT~BzyE3{>|F{bBX`gl z?+(1czcuM?V^Z$+&hy?VK%aicofwVN9Somnd~s(q^n&p?+3dOKv5zTOUHmsa|Ju1n zE;MQ{c+>G@xDAv=E&ZVDK$tPY1oHra|Xou>1b2SPa2W z$J=rTo5A(o=3qDqu4APJlku}J(e#6k%zgaFw|0i($=cR%c=1~|cSeEwOC$CTzdKpm zalMP~X0S#}47@4q-^3$c_3wsH4W8RuU1XoUu3wJ#$t^X7o_{#|?nMQ4XW(uJi$Qm5 zG#pMkJMLs_?>9D{0M^GFUvam4!TM61|I)KcAC-;N zQMpR}zooy3@v!cVFTFm*Fuj4>$Cm5|49PomSjHRK?_Z@kX5dtgOU8qnI6vOS@pSu} z{OR@amRqSeqSn1%sre<}FV(7UtJQEzemiJ3TBV>F1QpLOS1ZkOv(_$!&AMN8ON}sS zdev6D-tgO{a=Y0m*Ba_PVt;-miS^YtCde4V+%+Ox)3CFj=SL@AL-F@)AB9Z}q~-(yFsW$6^zQYiY#^`s2U} zUHb1c&)7ucc2R~I#0W%V@AF@~Z!I~4)2E%KZf_H0V6?mBtljsF!=%NbS9u21gcqh@0}yT z=k`v{MoHinoDqw4=?f-nEHw zVjT@;b=X_vXz;3!&qPlit6IupRSDEaoND$82&0<)P9dMFwY;F+sMktixm~N5O0AaH zXp}?0*6RALu;JHR-EPfu%T>1w-qdPAylb~xU~Sa~q`OM+A(7yI>(Irih;$q-RgX!~ z;r5&67XRj#GPuPf`{x!=iTP7+(z)b9DR(zAi|6$WHM@ANH@F10I2`SEdXr!~QtBOT zw(*Xpi+Z}|f*M@okhjXwU>eRWy;{AEvPhFRkzv<{C2fkZ#2Lx{7TrUluE}8W54=0gM1t= zX-|`(!|gxKI{vSJpTRoL?w@rWK^@tC#0#y>yc>jzH#8wM*3MuKhqD=u1W)*W1}1Vi z!MipiFi;oK|17);+0S}XNbOsGtLwE}jaJ!jcT0Y~>B86(Rzt7d4#RTQ^J`~>ufv7jS)1(u!3G6!z?=3JlfL1+nU-XSJWW>hqzCU1P6#NaN2eB zt6`;44QdUyS*{0Ox704T+aD6P@Y^4Dt&t{OdtZP*#S#<&a5Wk&mrJFUCBrX)+)|1? zE0%=(Ey1}WB~iTji~mQ4MA2BB--P|)<)h+?_RSddoftDAxl%Z#($MT;T~F? z!s+{$)*{|5w`l`oh0eFrE_{@?^1N)1_67URtOYiR=OJyGBSB1~3$D4@bBODE_MJNU z1rys$+zRo{d{jt`>z-GthV4?lOp5cG+o)F>6==z8FvQk_T0j=pZle-}l}ga+R!U{4 zTfC;<^ulsCY}M`@Vtjl3XMg9whkM3V>Co@!2C(8D`sTxrXVC7`i_>nyJN&3zQok_+ z^GBP|zF@3|L0=EHtVe>ZzGBQghnjv*sA=LwCZZe%vt9yO`yK` zoeToiTAV;hQk=Q zeLrY~m9k&+!V*N~a=F`Tx8NgJ4y)yoR|&&zP^)>Zb`xISo{!h7Ww%j+SY4|%-DB!w zMoFscQTQi^LwzWGb2vCE)Mu9Z?!}$0A!2_9)9vnEqQko`i*qoFBz+tWiX^bkrbzKS zLXqURqDb4sxBp#b4-kcw@NJ{-opjJ~9!E?~*uz?`5vB zL1_8t z;6(Q?&WW^s~r%JNKbtE6`=xaeI=I{pf`RT|0#^v5*%aIQpckC>m zIN{)b&RKz?;vj~G7WC(G^5Mb2lSCj1gnxio_2kA2U%O!k&sb; zgY>dUlGo=fsLRE30Ql6e`M(4Zr>XN8mwKG#73;(J7a>KuTU)!Z6*%1hDsM+JS2{=s zIJ`V|!r{o-amQn4vNak`H@6%$p>_4;*Y2Zu2;AV8myD6=i;nt2gMn4J?-})#o(dLk z&QHJYd}T;EEKjaFCs$&?F+B2N0s?d$%@VyPmP{>1gze~6nm!V<#wlf47C|oF(@T1H znvciGoSE@0iENanS5kmve63%gY@5;ddKSEm1ww4n6DREbt#+)PTKF2Dsf^sh-`@Ka zCmBv2x9pvw zcyzms8ZuJ(%~q{mt@&QtZ}_c7*GKlmcDdX1;8P8|ceC2|VD*OZ88%8mtyyk#>mlCr z%rqp=UCEm}9jTcQXXh;5`^;I_+X7$pK-2LL@@9`=)*U;pL&+%}O8O(**Bv-a_9+VP zyd+Xz*9nh*_L0Ap(gOZ2qc+uSCQRO|5ig?LIqY{%l-CgG) zmC}4&k}KaLLd*Hi-@nFbz*XY(H<3-8s2Uyd&QnulY3faO1(wW57Ccu89(Q{i94B&1(1vf796c##oZ)yN4S^_F-Y4Egbc}h> zXx&%{7;NIcKU{Yn#3}0r&H$wtIO-YD>CF8^3MlIxB&qSx>oM(PagC;+Si;zW;1@7e z#CxFKIHe9KbWkv>o0>qX1=K&S87#UNl}0l{RlQqcSJm>#GO@jbOc;s$f9cT@8qZmYg57~>k4sqS9>Hhca7O@iOh z=Rxh9f?i*q3@0cMp%08epJ+74+569UAo@r%YehYD7cA1E=m?G)nD+!=#k+n#XHQWh zcr7T@#tkN5?-5)vh1BO}K3aAi?sWceBm<})X6I>IsrJiw%2cI@n9Zz7u@}j}a^1dv zVk!{BC#T>s{%zBs}%CJVFL0ZnlMs}+!0DJ6ZAP1 zVCoa4rU03L{z=`d_@_ax@RFH(JWo8`%iGZ91bl)DrP-*jwoBV_ng1magax zO9djxHS|Pt6Vy9jM`UZoWTrX#q4&}(uA_*4q#DXXoT!Deo)oHt{BFC_LOyf1+(zg_ zwM8{Gy7h9P48(!D zSD{`|H+=rn8t+q7eMJ4{A)}T~0(Hc6eGeJl2{3Yy@evdmXn4-=Asm4~-0thwe0I6ux3a1?qX2`3YIBI0B|Dwc8lYRT;)yG@7`>t3bS2vIh$QK@?^sx9c3 z>R}x&*Fh^Rm+OAZYgWQ)sf<{g3c_xX_tA{@e(p-HV z=Mh*+E)O;S$B_163uN0Ry*=gx$o{HBvC~S-+eOk+aSnlB9*biWwrLhwwMky)I$Bh( zS}oN_0PL7 zh|CAiY^x%>9b~u&6io6pagnrQvPe3Xg3lfYg{byZ||F0|}@oCeL9BFKvv z1q}iJ}a}TDJ6gG69<-(wPp9nI+Lr@8PzD{i7Y5J zYb1O?(z70ZzfyF;_s7!ooYHiuP@2}5zTHxFePOb|()Ip6JC?FDrR;aIBu`Cd3~76D z5`O1P-FpxfB4_*#d48C6U~|Opy`>rQw?$m26#DU{0_eyQDVR8SPNj(|55 zQ|?xg$2;)CfKnH=n(cPeuLt#Rt66R}-FB<)HoXeUEmLs?i05WOoae60MhFY&#jg}d z>eWI?U6CI{Vvjx2|I-^?-2b6#7Xd^6vTl22x_GJAR-GpvdvKLpcF&!E;1TU_s4XUH z#S1QCxX>VV*eK|@1 z^fh=6c}6eC{Gxl7Pr9sE))NbDpCJ$p7xTz-Jo24sB%F7aAP6J^(dv@dx54N@92!E-i#GG{cEE2r2$Y6Awi-fc@VXPN6Lv z=ob)|9AMQL1PO4CXqDdU_p8Tcuzr58qW`EC;9t+BVo$Ad7fr2dPpx`4Ol@a4?$MT1 zQ`0}Ksl7oPQpk{sEJ$oM%??nbiD^*cG0_2{&AkyG>k+JPaM;T7QuG)j>5WWhQ8`tC zHX`_O62Sx79r@PmG6^LZ3U!bLp-dkqaIH|L#Ec5gf??1Qyc!J_X4h$;xi2yWqh?3# z2msm7ELgVYqJK~7FrO%7=t)hacAcRFazzCE9EHnj`aLI!oDmi@hzwU5_m#v7>Fq`2 za@~2H1D)jFA{!ZG6Cnu$%BO)pUFRVQ=%fqBc?lCO!1lZWMtk>bR_{_+5$$COb|l|C z6)Ks69YIuJX9W=4M0dzBp+&mrr?skoAgk&ka1sG&5R*7M2DgO)OnI0&9VJ{Dut>sS zA`91qUCw!7-~3fT@9?`cKLRLalbY`$JKOTH_X-`Btbi&_ zD1?H@8!$xl+0y6IIujEgh`CHrFyU?{n+dr?lloPHMW{TF(w4!8WbsZX*&rZOe@FaDWKRQ81Z~$fgSFnJ~*0Y`N;#U?ZX1iKiir3#(YqnD4(Wtrx(*VDApFp|wnUhjO<*jwp&=GepD%`%7aHj0d3 z8Aub;SH^=vgO^)Fk|jStsk5-sD2GA09MoFPu#5_esDuVr)OxcFgIJ~HB0p0%467}) zx0;P0sJoSN+YYwNm?m4fa@q?_Tc64^ZE5W%E~?2eyPtjJ?45GYxsH2VWH(Shth?t5 z-96(>2qa6fHcz>QitI2d&cO16E}RhI!WY$z(DfsfJ~98f1Bw9yB+ z*Fyoz#?ecZTWd42P%ehP@27?&d+9(K5b~Z{FtN3i&8!2cUnJU4%8;2RCccMG0R4gC zLk6EwK79Ptf{$IBOeoP|+8QKg$@}FCf z+{eh$pY9Ko6lIHdR^}rM0A4MaPW!goEf?p^q$3M$sqZCMi%Vt7uFrmE0mu2S_!I4g zqEdIMZs+7xsZ9YL&!rwBrUj7P#}+J{YRTNuu!O>R;wv){46Ka(JNZnrxME+K~*%|TIQHKTpe=QonzKHb|9^kzM= zK!f!aCYK?w*H@Gn-vW(jA;P@sob9pu(m}BKe0PM*&cUdop)wjQU^tcCxySU*(x_3N ziwA@e4e?8`DSJU5$w6FH z?-da3HVdXt($dPiz>;abW6vn=tI%TihKvd0Lo$RR>xnf!8`*MH=Da|X?qWVTo=3XN zNoO*=7^sOG4c4ff%r(CA(`UdhCl588f1;b&JUiu8uRnzIO%egAW($s0!hZ4Wx#xoG z{yx3u9wG=_#E`{VD2n01exdzp2!6Bo$kX#{(|hg^fi zvvfMzRI@qW-j`@Vd7Y@Dx(C2=5hb$_6V3#$$(H6^nruIV+ZzRQMdm6wdt?ul#h$&u z8EJ9_D;W-b~Cvxr|}6MOhJxLgS+3A8NC4@7M^|xX)#*J3Bc^ zbRId(Ay+3D9MayxKZ1N5U?7Sj2P1+kohzp`+%woc$?(S`RAYO=87T6N;EgOkLS)s{ z8>C=Ee6Np}NxJ}#kf6h9{imb8OfmbJHQ$G6zE3><`PleNf-zPber*IJvpC2ElnFZ8 z1iPqWfR#WCy)p;yc|kju#pljwu>fM(I6ingTf1WlVU0Y_4A^8V5<3Ed=gd14Np9&p zzP$9(CtVg-jhIq z3Na*SKq0k#dP>)bq76MWi_)h}^$e#_O1q+wmzgA1(oO|DuYw(SU3Rr>G4;b*!oPPx zV+eDKT!YkfX}1s|<^1G0$UGv>(j(LDE<_jh1{%Zh13L^vPLMYtHVpZpTmadN=CTNU zR+9xKI|cIx&fH)U5gpOeFf^qS+@BsL4WN>73ZSR=XOqh}qK%xqE@VBirt=R8=@}dv zODvPL&xz13F@S@D(MIHtWs~geAnuslO(an$cYw)ZBdg00(=D~4@cHfUBF-GQ#hu}3 zQnYJdQ*$JmCCUw1sdT$JzxODgIzg$0SbI9N(fTrpbt6fc3@Rz(B^u4a_UgG!3>j;gpN;vzO1!n5vY7dUZjV-qr6LXiMsbXTM`1ko}krpd8lF%!yGH3Qg?7 zqoAl>!;ai-P10!s$Y^a~a+tV^LfAgpEHCp2lg7AuRhpII>6UTyJP8nw|uHq^yA z4=wQ6*qWs;)*a8eX6fyL>xQ8*&VO!!^EmBtlg=%yGF}kw_w@TQ0@F(4f|slrFhwzF zVX@X&Log?%-_-9%5J!6B%tsb=R;SK_jA!kKuF^9o0%DHqAcBX2)Xr#hEj(R_1na8BJQv~qqqygto5Wwa2 zVaHR2B{CjZfR`g}H;u;vpYA}*#4;0&k%9~COH?BSiMynHoKR-F%^cn+9U{sbIQZjZ zrT3aGM_e;B$nv+STLK&@+B(?R+ha2>Jm;YWDkmfwPq&Hlaj2m#d?ou=N@8I)tO3(1;R2vuNF5fl z#TtH_Fg0WN)%ak*5~!{pspFvcrVXU?1r-}CdX7s)vFx`5Y@8ce;`p}(@)HS=C$!db zTvYib<@0Ww`2_k>kQEi*c~L+US9pQWYO(+nZ=|dxmG5~?=LsKAM^4Dl>2_;;wmjPE zjv2xIf+bQJ@XZxIeDmbInj?ib-xFeOCDbA#Xeu{1p&LLBv7z>Va~^y2JoE^hm`)Ux ztjl1qRw)r3#}IhLF$%W*+pMf_DvtZ* zpFF?gPQ0xS{=0RjRvG&9_I5@D#2l%4CnI+-c0KYYFykOTc52^o5Jr#lMnl|L$+}Y$ zm^1a5`Q7|c5vY%||GeF(26P`05X9;&FPY;P1xPrKu4>H%h35S}CscyLxT{KAQ`sUh zgVBYau84v&dbItky$>`XkM*;L?Q{Uy83!(d|q&$n#=LxbfSB?va>mog&%W1P#V~t zD+K_=wVagD1$!WBTPJ-#wDVV@b6EN0eJug1Uz0hm>(`|aw+yR(m`L4YgNmxw4e5A$ zI0%r%M(I=Zfb*mJC3tLYMOmh0Si8*{y-7&7J`p$0BnA>IP=M}zdYrLU&KBvwfW=9| zz`z1!uCk2gf|IN#7H0B*fwsuliHjJaZ~1WA_2N`z@o#hBw-U!dJ}N-?4NB~E*;OGP z`j^@5-lwTwQ=zRsVL3E8rQUcvW#^vJaJsowFu18x737*NCJfCl?3sGz21%IdpI_@0$nkjXtT` z_l1177*6CU8x_SR#lT;>Gy~_J{nVP;Kc%VV;M@R&{PQRZ4=gjP;|K16Z7T&CHTah2 zBFzBKb~sIl59Iaa@IY?1){*_BR`CYP+*9_Lg01#Lz17SWHNEC$ykJfK^E7!4x{Z0| zat4=DRCLC@L2`Iuz7EP6l0ztz+ORiM-WVU+okBwOqb!&eQe`L3dc%U6P0c2+(QCuE zxrn*s&8z^qS1)3T1tR{_9Qyl&FM}iiWmKM{phpyjL~zB9%2}y@nf>maIb(JUobm^$ zs+7jiI^&t*vjrf$sVRCV_$qmW8YxXPADO^$$@*9a9Vgf=81tR`qAgGn;xV??Q6$BZgq2yI>xBA5Tw2ry}l{_wPAgwC2QK zfbrd&U{3?5@94H!XtqxKy)?k&*59|FEqKX-l%1w+NOQ29WgRZS?+??^>K550GhQ&E ze4Vz)B4~OZKAXdl!K94_v*W$LOBX+Qr-GdKp2p>jzf<&_3=})iOwyjx_ZSsgt1p8E z^S>_P2QpXn!yKNkwJJnGjbPA$g3hm!W>HZy`qS)qZ#}Y<19L{76my`=)<$c=NOM@T zF477aB0ih5$ZW-yGsCP!M?t9+*t8{53h7HlT#M~(%GozS(WOPqTz5*6h@)u=`t$1< zrl88a>2P8uVA+Fy5k?ARt?iB3uVq4^FWe(c<}e!4j-ay*B~z!vx%I>y1I|HTfrXqy z**TveOq_gW0U<(4wvpp^Db4)wE4Wv!?`~822)qEx=|gUR9IT)C+ShQ72Vrk>8L0sA zt$&&=6$L{rtvVM*(_m%AdFGiDCkhN%Y)>c3dpf@I9QHse}paM`Wp^V(rXJraZ+9a zi+*}ZuebSlj8)F~78)d%!=UtbOMb0i7$Z$v^gZ?o4Nw2$KX^X~q$gHRoEQgvY*6Qv zMBL(nf&d}^C5R=Qw00SU8)6bzw8EhTCUZq)skQJE46O5>H4*5xpj5oZjQfo6)b0rVl=an!lt4* z-YGB`J&?xwX3QMJA+w_(l@fZSgfG9*^(Yk*={|^f`@8pH7XB z^@lMEm*)clP-JWR!I^CxbV;|hc$x(hd!D?nOgY+UuvYa`7bxYl45E_a+Blwj$XPm` zy*5cHqy!>)F1baV57~j7H)nFbvlR_5$4eIvnP{|zT{V`lXy}4%b1cF^YWc1C3X9%Q z!p%=o6-NJuzrL1|<-QTUzIUqlI;YjgmN0iuflQPy4(aX|5rd+u^&KG#*)y0^28uqK zU-sF*Q=j3|7mZuw&!@flAaAjRT=Zd%BOivotK9ewF1)Se3U3jLZ@0tV`uwMyg|!9W zKNiw5g|zQkQi@(|LpWQ2_}=+K*$*;jnTkS}`w_e6Wn)leuk2@qGFMPT-OnmS zs7BWfn%#P{l#C5ur~nEEGo%5CW_it5YDXqWTQx|5dO#G-lmvxxWc9V zF<#h)_e^gGntI)Xu1`Z*V#NMd0Q&RETnR>liKidZ9P}u#=f_DB3I;GUyNQ9#Y%zz} zyDy5|)Xp=85<-t%Fx)MQEHgrlsq@l;pJmype01$gAJWN1@@uhLQv7HvUSknkbFy+pRBZ?t{Lu;%L7g9&3;?HAwGS>XFnwFjPtV;YfGBPHFGtYy{+K zmsWWHCbUZ_^hKur0yK-hso|c1x9RsTsEGjdsoV>(zQI@Y<-pRd0voM%VYe zuvuz_?NXy&YjoS~uvTkT>-BEAQm=ZxZR{^V46C4uutzTyD5E};tBj)SfkVlBM2Lv) z{~5Ze-@j9IQ*WlWK;&_d`N+Bxa}FY<3o)d8<**y00|>y~SXqz@uEYz3QvKQmLq^UR zf2bmc;6khNka4CZ$d)2)DNAsdctzaFBsuPwF>O- zr?fC;lQq$*WGsfXt{gn#nYkfVnV}R(mmms5Iz`ORr2wvxvzPX!PKYK$M?bA$m(Qy_ za@rF^?QmW|SyzE)_E>RVDj6*PZH>k*5hAC<)xgv!%zcPHP`UEJ_W3^>{O2hF)3DDk zXo)k0%zM7AtmO&!S#g0SC)U_=mP64&46&OivDN7Gl2(qGKC;^JHN&q~KQdp>b;6Yg z=BrxOt-CpmH0hhcWL^K(#%V{_(pDb6k!$W!`VB20$8+h3x2^H6;35}L^D(@IBR7N? zg>yOz^Oq|po_S_Ym)|Qt7HJ@N>8=e>9%+1K@8L1RiK7D5Tf;uIRXq=(l9WjuYCWV@ zoCHXtMvl^)dLH60R2&%P+)3lqWd zvoBHwG5{Qc5N^HyJWva#zRty9_x)F6M{WseyAGSea1>m}dD*J@VEUMpx+N~KD}Gj7{gt{^+I1g2O= zX7<(jk8UU-{n?rP>HU`|ww3Y#aB{f!pYKk4ef9TEP(?(d1^yquHXXp@6ln+WnnbgF zv&b)u4`9k0?A^EieTv&WyH{FB+{fBlZ00)$VKeb%(_#ntAsG62o3H26@1HlLiDz>c zvYK=IXEg?1j+qUGxaBdM9~lg(qXOXQ+D|msU^fdN*dxGj?oIIwW7ptW9?KCYs`17g zpEJ{$g<@elv)(9VJk2I_HtjBos5k5F59XrxkEF*qb7i@N?a!us-_7P7qx;uXt&qZXDc4Y)Pc{7SRj zZq@v-(rr|$l}fA84a+6BS*_LEjSB1>)uvZ%mwi}3{4V~V#rEFNY|l6&A1KQ!)bg>k z6-Cvg#IE;#@6##XXDIpR$k&Pt2maK9*23n3_gpy$gHfHDqSR64Fd9F1AB%Zt|13r$ z<(S9J;xTrTUyU=H$t-q4?|d$^=cIUrG4VV;vy{hY65leT$wjMhn%u{Qtfq#5`Oq!- zZZ{}5L$}@THtVIf8#cR$l5csf8n_P9C^v%&w0U0B^=e_sZB-hTS_R?sW!GXgs5B+2 zJv{|FD<3GY*{5djy`O|B7W3?Wvu;>|)^9ElQk*okk?=+yOBGFSuJ$sfY;^OdPMEjO zfqUVybG%r{Z-c5|N2H`%cN?uzt=g_5cXPryJ7KL6yp_sn?lkD&Ug} zDwii`^dd}o4*V;wJja`bY`Ka=1?^V3R;q{9s#mRayFuHlluJ#w-F4g5&~L)}7}VSK zW($RSy{gv^nqjjAChk>Gny6y2WfX=s*|IssBhQzATz`5NUtYX2naPpw`DX`Fz#7Sy z?*{qOn9g0u%6@JCtjt8rF%z4`#AX&VGq~5{r}hZ&txu%*mbr0eaI8<|DP}XiXI?cE z&BCN+zEa4Y+Q@4fmY{vD)Y^5gR1W=eDTG|uYSim4g)gA+UD)bYJ+EDBwW>k6R4*Yu zs#>eG>S4QSrZ&BD|VXt4@PUK*?|QKD6k(aPV`?N zgcBt?zZhLkj5kiA!J77Wl#c*=T28U2 z3`FE9IydrIR8AivQWfG|2~>se6*4Rj(v;h(d2m*N_0VslB5NBFy48kTtF@a*59fM~ zu-Ob-&9d({N;M?l4#RG%)(9JZy-_J!;?z5uVI?PbWSQ2>Z)PwpxpqVWMdEw0ZXFfT zaV1&R9~^{LahG=kgA&}_eI6^H-9K9rlpHgoS;q%ibz&c>cE=u3PR_+qG)N zZ&uoFsa*1XuiJzeR4Sp~gT+i<*UTh797oYX<;VZ)UuLin2^d_z*mp1Wc8BVY&MZVX zbts5*I50(>zxEF~`#8nkQU%iG6Ko2KO6>5jR2r&8e{4>sH>U{m{&Jz9~{)v);QYRcKP02pvk7%zAM)~F;R(pDm$$rI<#MChCJwu7fpWIp}^0Q8NY z(;ciAGJpVH^`|vybqMq>kNS=NNbf&BU0DgrmY4KKQA7eUwBvCHg|MmYxZd>Yl+%Xb z-6BVw$CG3!gCTNO4&8n*_JZY36msvQWEUoan#YvFawVMzo=a}d8PNZSdrK10uOU{K zWjg%!89nsMU3=@9xdd{tDyapY+f#uR34rPHp_?@1Af=1FJzur~HOx(Y{@+(@aXXl} z&%UVBJyXHXYn;F0XrvoZv!V#l=U&#Bl-=+~26ByS-Q2v=zSG%b+!_ss*mCYDMwT*HvbML9UTn26;f2b_P$qg>+N#XUag!q+eIfQn)Qg8YpB>b9JFITEC zwAL#@&}^6dZmZmFHW2DkLo)fGisS-*x76^E+4rMW?%01{?!G} z`bkM?aogZrQ_wO{)k_pe4jmWio_2yEQfqHe^;OCdgi8h&@aBleb;o&dijTKJ^7_;5 z0az1qcOjWCkxr0pMLa2qw~q?%;|X}!w#wGenbj#T&y$Iz%cQ$c#;!)rGDJe>@v~<> z`-QVyoXf`%Mk&XY^%FWx!p}bPH*ZBuS)~k$ep@MnzVU?A{fcuiahX|Ehear-gTJLN zD3zy|WFkgouyyBAz(2a&qnyN_lS`+A{7Oi|fC{6y0CMF~Myg6}%gKP9oly^o=27)N z*j;x{6l6Y%E)r@Q(Qj)S_de7cA&)Pa+I1EynJ*=V_I+eSDN5&bOLtsJ3{E^c1Z zBmHIe_ReES6N77^hm1K?VOY|m3A6>E8i8EWx6xn@fsE<67Gad_9a>8aB1zz)1yv`M z>mbip7N8(AKbID_vM)#V&r_S8Pn?TA%v7Ra%D19Rrp!40ZBF=&$5<$%bo$8N;R<#C6H3Gmg1CCHF^j<2VygFaE`jS6a$NFWfYZBuK#NL4KMMH>IAog*k5dmtP0GFzbpp?Qcwlv+R)(e>X z%w$e`kvuA6-M^u&UdH8>ij?m+=~IT#W9ETUw=#oC{mGfX_|v6_{-=Mslc9Q3)u;4T zPC&L*Zyp$$i==Co@@?fH$~WEPQB=R#u+OQ0i$2n7!C2`=8j1MVU9Wq z!u`tg2qyK02|Tj8eg)}ZW55lJK_N3kYlg^OY z4Q~CArp#ME6=Oi1?q5+GIMc;Ae*4*LOwJKiMNOjO0rfsU9as|Td*=l7ufWqT#|jHVixIbQ~y zW!_3qY>p=@1>nV`BwiD{%>wYtXJl2RV5hO$S*E37QIXE0WbCj&#sapk_sQEIDmzTFDlbtaH=dGZ>quoN*p`PE^@-~9O+H|~uFM1xV9UIjKQZ=`m@SW=~oJFBH(8QDe z$PFhaSDlm5I`I#Dihn^RPQoJO1*8@_S+J3AMbe0X75}y%TY7K^$i_RcLJ&CtYf;R!>GV8ms|Jb1XNPXjLLv!MI6P zo(!IBH6b`w@Et4opy2xtTNw(zIs66SN-^qrrh4yVrGu#Vq`#x6+%qAcQ?;i)`Oqu& zVyC_W6`m;I6xvJ;mgzuZwrd5P`hflecrLO;B5QxQ(eM%I1%+0%R_oS+ZoM_jqe~#j@aT#k6sWUW zqRt{SD;%{hLLnfZQh|6bM{bZuOSh$cr+(M4_^JD9j`C?G`@SmUnX0FPi|Q>kIb9$y z{%u}P_dc1D_0>q-fVDg_-GZ@RHl`nG7ZQ!us9%_=*Lvi_*@quLbK%^hkBDx76aoq= z$bkZwX%wIB?Dc{|L@e{0Ef!cSkB~V@8PnB>%VT9?dh+bApMB)QI$6Y?T$w$jA&blw zPSy(-`!8WbLjjizU=32 zSYOQzIx#14yKU<#S-gfV#s3T_|BI_ICW9hoO1+{ zy?e7_OpFr}1)AhyQ)H9e$Atn4RZl_0aJ$l=97tiKTyND&A&Q5!kX5%7lp&KK;G`6| zRTs5W!fvI4+`5ghhSFk{su!C1lAgPgJAal^Wd?f0Ep?V9eT< zh!ZL~%a%=O`adUjm~}0#{Ps;vdFB2Z{j{#jYfp@WHIG7k_1pUHtQQ9T>p>4$gm^b4 zx9Bn9A6+oktH!JBFeZ~sHCvN)OxZwpF#r6L76KVE*=mk>Y&STz8^CT5Ud*_iOF1cR ze9er>58H}LodK082OuH%ffta~^=NL;`Z-m+i2 zk9|I*m^>+0oYSYBrSV{RIqbU^gQfePiC{T-;qh}1KYaG_ld(AiUk3>Nc8s@RF5BD; zM$uRF3ar|p`3{-*c}L5;v3OD7mm5`=hBqrYFQFe50Vxe}M|Yf@abK>SVQ%@`X4sg+ zOH@__lEnh=9*Y#2BE@T#S2Q8kkR|419(TSFVLQ*#EOVrXcd~>B{XQEr(g+iAA>Cdm zC%Da;>zB$wE9`nOS5(7h;8iMZNDnB$(JnVp(Pmu+L?B)W=AU0ySQ$&~3?H_(?LIH7+C49io>#1n~*P=`##_!E-#9#+6cpfE! zZFz{;ze-s^3U2E+=&Q)8pnsV+<+oC@0I%(AUF|LImUxp~#pB;**RPqk{yBOrbOC!W z+Xalf*6v@hLJy{H9|`o9C|(=?!sTm;eZrR3oyXyN3deIee}0J~r5EzYE0^nV$ZIxh z?P_K1;b1a>jc4ur1kz#PuhIQ*?I9q0d@n36YXs67vJya^S`#O-c9DbSi}X!LZ7D&k z)nsCJ@0-7N9tIv5Tg1?^sy#XpXair)RSK5gz`PMi7_1>M8hjQatgu;%_}8AzYBX`c z6g0x7L20LeA$Mn|Pp-?#neEi6;1apt_3=;t)Tx4vH@6jMHQS0qz$_X+`jT~>5ER;N z77icNIOMT3av*YhnDkJ5mQS6MKJ~0;;%@etNs6n-LacL6a$3-4Bah(eadhkM&|niP zy7kxJ$q-_tR^?0~mXE6`#s0!)4kE>JcSli-H2|Mej+HMyB!Vn_s+Ey`nZ-W-Pco}q zhjT#_J0r0z`eB8sYA57G<9M<>fgieDXz(!-pi$-}32Y>pm19i#@iHYWbT}?_=&|#( z9cIcL(iD}s0ez3%O*>>(L~B_`^8@A1U^XeHVKxy|u{1iJn$I*h1xES^xxj>wVlIG} zsWil&#hKQ|ySNk@akrV`Ek#T3FE^ab^0uai;|!9;xd%_hvxjDTvTUz4T}E)fnGU?= zCEwkp8=A4ooW_pONw3*k0Qvf2g@n0##_+EnZc?`h@ml`Ul3s7>I)UV+FZ13)|KKvX zrg!wah7nUv0upAPI1we=RMt(*ea=jH-`V?QuChSJyj|wV_hj6>!?kFhydNgJi`Vbn z20;iJL>GDaSZ|T3w|L#sTQF)3#l^fAhC5$#!C8y-u99<{ zqq=xEOLf7Bi7cKONE78n#)CrbMKx@6TUD=##K@IO!$++bWXr1rVWZV*SF3F#(5oW{ zvg`SN390o<-EPCJmujAi1bYZdcI#GRy^LwH`XZ;jK!5QUkrO7*A9;WwB5Fs>6+@E| z#}<>|e5vO;y-95I#06lyeyADtgal-9uQ&ydGe?5GfBd3(D^c>Z*<{InVM^=aP9O|- zr)1S-c@UG=7n=CK<7^`J>JD-YUZ9jf{t&7j5?r=jxEa|8s%~*k& zKx?FAJpIcW>&&dFKlJ%WzZmaL?#)`w1x!l*~uePo`AzGTTPGM?RL z4SeAd5ph5WMdrx}uxH)ia!=AA_``nRMRL|;C_b_@PDe;_fPB*hdm$!9I%A*NVnJ7W z5V@@fzANfZXZeW>53Z2@?($a8+v2s571PA5VB}*xo!rzphaRP#|M_R3du3|NXtF_* zt=1-Z`~uFId}ids<}Bc`@A*dusdL1K5|Vl(+C#qNItZd`!UgJdly6W!GGC|Y{%tqoWqDw}s*4)4K}gRLA>+%#E&t%4NG|~dt?@)5I?-}M!~1dDe^EX ztRnAeA+IQhEri(DDqgGHgbugWLez@aZd5A)_yq!4f_msSyi&z?efY2itu`1&tJbZf zK%NJ+uy65->oVmd$t?crZ)7lw1rx|x?BYOjh1S~M4Gbfm%iY5=?q8f`Xfzx%jXb82 zpKI1&8w(!EJD+jveLO|}^;Vh1J0vYl2Jc9I%-ka%wZcF0pBHkFu+~P7VHDRYm)g~G zt5j|`U@>%?Ua9Vt!d8fK+<{+e)`AAgcDG6t42d`KIuf`v>eZ6PK@esr)eMdz5BYEZ z&UZ6-$l_7b78`l)AX0~pQiK-gZr~)=bnYHza(Z!QVqoH!pXBkAnL*SBOIiGc9s#cM zi4<2c_RK8CBI>&g#**mjhF5|nBdhk3!6#*t()7e*OOW`Te?i@W^xLAVR~ z9NZ0TMdoq$@RP>k{De?&%t-PWNp`TE!9f-{es@0WcsIp4*trO;c?OS9C>O<}Q4C0VyDxZnNDiH!78G%k#_N0p)5CRJvui-tM;B6(p5xRJ>X{ER|XfSULQ< zkF4}9R7YucOP<9YuF_PGBwP5y|1*Ov%%Njdkpoydi!mI?*dcx14Xi=WpUirYwWN;%`kSvFJu`z;-`hIBJi4xmJd}` z%Lfw(y0vD|ZZx}L1&-_OdJ_zxTJ&vM4Ewc#aw)@r8y9~5AXt@&!^;%m) z36*VUy2Gxa$`LllvsEn&6vkZ2{$c>fTP|(2O|_Rs^mrObjZn5D5+ z7!LIq`Q46~`Do!()*XcIPq&vj5ggYD!wx~AOmakCagfW07Jl3Ly424^bmS62J&2v= zC~Pn)wwaC}oQ!s{nh3=^X?groK^)a^lH%f4ol;z>mAd4-Kqbokvl5Sm{fQBl%;_vS z|3KiQ;$8@xUtV%>cUkISeqZN;U);7#ZFbX2)Wj2}xKAw1DA*oeqSV=39EytCZ@EaK zjch?GYr#2Z%e_Pumw*G{8JUT=tlI=Xkn9vm`6xnFR*m<)M`@^W|kSy*(ITG;YT)XPwWbpH0pAf0KLxh!TB zC&$!uy1UDR(@olpX8h#|{xV72=5%#@PQ@uETpjh9csm)zr~y$PkPyT3)V+NAE6%8;OULe2IGs9;m!s@jKeV;^IzjF z)L;yEJ6l6aj)F*SdW0%#gUtowCf91a-EPe*cPk-kp89URT!IT@4Y^jmZo68ioU2|5>R*@`-3GiK%aHbi zdbiS~97}L@v4s9tqG`$Lo_(eJ=|^9cFhmZXaW^+d0Yz`4Xc#)j<%R3);VoU_FYyqlgpavq6qJmkZ4?D69 z1cPZGtW1}B?)e+)0)^`gQlIn&UVrK%?hupWN{Bjo@YJaXiBpYFozk&A7K@^|2EjV= z{fwQ{VoN{0hnHwd-paj++<2v9LSRINm?Q-62eIUlH?A{=UDU!Ypx z>$}^1N@o;A0Uo+=q~1eP@DLGMl+8#*bi}j5UAp&GfX(~kNr6=XX~OnoTweG0=L}B! z)j5OHi16^uMgc+Cqg}C~vRM>FpS)$<#*K|7figJ{t$3NOS#U-HrAGKDqY6+0of^l> zYSk6FMDaoWKHb7tu~`)6^|~<+btq&G84oP@{aNsHRH%kUFY}?pZdX55L3Gh#kl15E z{6SVky%kAf0%rW%1aZ-PZAUNS`ej>o6l5eCO^odQGb_-U4{2`%SrAlnWKw(-)|p%; zp@a#z-ULkNnf4*@5%(1&*LKbg9ElOXObmrtjjEU`Oi-s}Gq$fvz-IMYKp$SR1Yfl` zt+s+`vcwCnM;YHVt)f$Xpm`Diiq{{`G>>C7Kk!)1nPDsMsQUm49xFSSY9I!FC?PG^ z__Cy8TC}8)%Axjef8jq!Ywe^?o0jYJza6Et8=HE%k4jk{Im4n_Gu3LR_=i^1vGPY= zHS}|Q{I!;#s0-Hh;n-=3O9Q39PxbqiAuf-sKQ!RtKS`UTXpfPe33{A3PY~1|qh*5r zbn&>WPViMP*qNOE(n;wRIzle5%oU&@S)oh<=)_4*w`Am2l9w5xeh^L^23Yl=?-L*| zqW?5tjs}4;%zk}6dKAr*QkqEXdP1X^{yOmj_kqMuM(!u2dys`Ac;{3*TzNC8SRe$8 zQsLWsbJRqXDIlBl&=2~0U#`#C4hy_`thSJ99j```ieP&jYbpxp!kws_cr!Vh9Bssp zY$~kD%9vhf{X+^ZqH;(z7it-5l}amUc?hH|m1?N;(rmYp%GqxskF#G!uI7dp1dV2^ z-K>=Blp3k(RbVx8eYA&Otywj+4Bx(DSId+IyYizM2V&;KA|1tL(NRD@fbcw|ic=)T zf$T{lC+=*)V2c#RN_69U+iE1=ud*D+DR{L!ttBR81hQp%Tb_^dl_;5<$k}XZJ|VRm z={9WPelnaunSKdM57Aa^P}U;*hDj0vJ&)!wUWw&pGA?1db7}z&q6T0E4Z`Xd*8;Et z;vi}OMp8#916G|U<+r5|aF(^Y=TipyR%EfCRL?qzPtv${BP0{T3G+}aozRiMKl{jk zGN-cP8&AjvJ@;9yAcEQha*3qX#ox{@*s?RcJkVRY7p03?cOHc}GrHUx2dlb-k;8hf z?QNKSkSB4>HB3p#wC(m-wM6pI&ZxKTj&>bnTr5m*b<6dA=yJxLvJyL^-#N!>Dy>9huEuH5;L1Ltp!z7bb(^L*LeTQsPeZp;QbfkEh?LZC2ks2(eHTEv$_zn zxKQ$fDc=gAwlzvz#lOw*-*`-KReF7%98WjtiadeFSEdyGG<)4U`FZtH>O}O1C>Vw- zb`kXb;b7Ak=2rCE8t2~6>(}->(2GL$o@StAN>-CK+L}>pD zX7=LF7BuS}=(Sbo~`y77uwi&8Mk+zI|0vj~Ddii@WD|DLdE#j=%UWh@xYerDm|43ky8<7G?GFRfxD zZv*6Ulba@74kQ7lp|3AM&TA%ke6teJ((M*lr*puPyV=1&N@zI+o0AT&BxTzqj3^ol52+ZM>tqEKS2yCc>OHJ0akLT1;;S#H@OZGXmZwfWI&L zWj$-O9PO%H+0GIR7g6-2YU}FUD8?-kBakN7c zNXvR+0o9rTR35@;oC0Kt0V)Haj0YAx%^C3IAZZS8_M_=Ou1`PhPkK9GcB1TKYYWIa z8}?z`CL*xCgDd+Ogki8*upy3yqWcg3yR@QPDtJYT#7I{}+s;yRf9wQXd8s|6Om;Gq z-1K6sil$#$L0$BDTG1SlC9|7E=dqTXG{mg3g@fNXfKlnI>_dT?3si?3+TJfM(OFCT zvy$7P@q`EK`P7jcnC4WV_8K^E;=t%SteKNPYJqHVs*4>^b zd&}`4YpTYy`DvMhdTl+89yJf}aP=2|o|r6AjbWYB-QzXhgDEOCFmm;?wSR>*}5BxlS1dWAZkl=^3q0%aUhHp+~|8tqj z{&@-{d>e%#Oa*^#A=pH(#oSSkHTZ{H;^qgYQB~2| zonQ!=T=1Fy+`{cyvhlD^RqJdcHY&YAUkimcv)H5#iq)nx#{zkhb=`9 z*_%Y&1nxY;H#8#lkxS^I>Og-r1=L)goQp!WA9YlT7Ey%8$oL3t424Ir`hN%ZGcZLG zWv!AE+wMiOM3XsNS%-;ZN6Gcaap(Yf(;E66S`sy$!kwK*GE5=RDEd> zEcI8^c&q{oU{dsOgJfM&wB<~tk}|i%x7Wp8Ug?5+5RX^!Qh9Pg71+-{^0(j8D=kG! zNQXd-NMxp*hnDPAQvzvP8K!$?%tdT&4ux18ju}^RwA)MwUenba^>_u+p`l%qSsD#y zzj^+TdKlC1aTS_f2h|D-hJKCxACaD58!1*$>s%LzOt+hW{PdoW%nFf>H33iB-9PCJ zyA)zA616s!(@ui`j-X}41F{qbIZMxJ-FZa9@B`;8y9!@Wpi%`|54jh}Q-!kDc%uM1 z2J-PEF-?EI>Oe|!!s!H&$r%lM$&LKn)i@5jtGRGk8&3*-(R8ndM{rDD?x<+*H%Z&!PoYeK{{wJ3@R2%8 zFq-+u!tB4c6iAW(ww^uVH0qvCDg0=7>#I#J#~73?beu1p93xa92)-!7-33RFx1?>%cX+DK+8>f8YB~gBCxQ)^+G!Pzn>zc zhR$A3*f1F$YH9j>y}T?>{&Q==&e4J$L~pO>S+Jl9HNC)?XtV(PoVBpDSLe~)YiRgx zdVBQupHBfcm;Qb~kR9vrm2u!$hfkH1^OGmke<`iQpPd}f%$@Ly|6CPHkaSU6m+Ls& zpqMZ^64UliFTp1U*&o5A+`e5784c#+T{QVPKOtrE)ws7xWaw_xSTBnuOdAv(tlCF=GduJoi(S5 zOr;n~BuJHjObpj!)NQ9tz#{epm>h^armvj-&>OGA6bIYJI^8(ogN!*~GWbg*jmr%`} zNmMBOs4qc-<)VQ3E?)ATUnVOH(#S@sX5*}|bb{hTO~2@W%BR#DilcF~kbFlPf(TZ{QGt zzbYvpb%t{=#Ij9r!_^u;y0subG953RN4{|n7!XN%i!Fnkx0D-N_Lg#u2QbR*8Uu=f zjxOz#uMl@2_MS&yI2WW-z!2MX+1bFUg&AHoa5_VDKL`RqsE5pP!QCNyNF4RHDf@ z>7#sRM%bWAC}uR%{ImVtt<6DL$Vdxd;0Wb=}U+6_FH z+$%uHK_ACJ7}7A~MdbIh4Z*994>b$E?*@b+mxM71o*|59tr}mIqX))<#lT_3g!K?8 z)vjt2i!JdGP4j2 zG=u$*&t`QRJDM_ZH5?!bxju|oG~7Pc^ogXM$eRQ^&!?q+YKr?6jy2qBaD)x^67`rf z9RmxnvFoECy9SI^V_cuv`S59GYd_eyauR4;&o^@Xe&IsSIrDfc&j$g+isj=yjZ7?h zZ^_#7axhb2NXJaK^(#fUi5!;~9w{dGiX)$jhXUQ3pq7G1SCpFs?t zZi?SER*8a~^p#bn8)43P0_5YZq0Gl)b)>$bF-86+tg5x=u%7kIM68)bhR z_m&0UUc?b?-f+zMGdRxirmWbWC=s+lEHf0;Si;Dk?Qh+HoQ7;^{!heD>HS0^)H!NT zpr~u4$~agBidPZ}x>q9??T%RWulF_w5TUL^6@l=zXW>p3tL?sdjd|<~hL-LY1Y1$d zT_q9sO#{$Kv38C1GA|gauWPLLxkP{kC6fwMyMmyY5x}Hk{<(HdkuZYTbGTc_FKAquQ*a4n?<8Z#7F{12rq! z<#x4NEw$S9vf(ZFoh$F*ti-8vQ#7RTd5*VTM(k;3W=gwJPWY9#q0x)k!$ z$n{Pcyrb~XU;rO8iX-H!wLv6B&}A^D~8)LbLeFI(`~4YxkwZXx2f_IvgSL0voqNm4X2wZY9?RB{&wP|<3i)(j^L96 z-3~6N6i*vRd;aVrA79938_u%X%H1tauz9;|x29)~SVGMf%M5zRe@k1n`rr2=|6#cBkHeU?-izNi%Gh6LNQw`a86mq&&c=iCZyj_ZFBypU{P)fC5&(p z|2F&HtIS#$=|ZU=J$HwE2K}OOBS}NnAWp7ojr-|Y<34uw@$-*90&OGI?0OHzYf%8e zRTBMWZ2r?4_Mr=;#Dexzb~!IHxs^o2tjn@uWohllq?V`0`1=cIFFbzk!Ff_nUY$<$ zg7Tjh1fRlcQW680jCLKpvQeH`txBI~g(5-;6{G5Y7BKl6+Xq(nN;uk zJLa*}8Ag#>Lg3eg8|Ng$9E?vEo%NUy>s*&+i-nKUgKi%Ra&SsEH!Z_$d4+`6%UigD z#3#Yg_xFM$aZ}boZ_4PWH73#_V$iWi3`rSu)D>vWK(odN3CnctP{h6f07)$}3i}7Bn780Bt zyh4_*Wl>{7FF)R-`q=wrc2&!{9O@Mb))V0~;Btn=Iu z7lYGwCKnLxHVe8BvYc29R=j8JHWSoELv6mN$(3aXQA8;7*+E8&OQFdK@o%fwM>xbn z;tQDS%swbDs5@tzE#7P~d){lRtnr%Zi}@{i(*#MA3nFEfr*y;xyZ&VjfS7k=Ziz+< zjQcqa6-+776-V)|gF>QHrilGW?P~>{v{`UG@OUb<_TgfNm7GvbGQ}5gtR@SZ^Tg1U ziEFOp@^lf%L7Xzp7cAT>3N_k1CJ-iDEg;X(yJ zzxdOohyKl91}XRX-^rcC2L$!vIW{NmZ+>A zVuzit-3L!WBzxZRLaoh*X&WWXcOc`DXSZ&JqjXe>aCx2)#F-kRk*-OuByc8Ms)T_Q zb6qpE_I=P&C~e>oDuu+w4s&MXfhZ}0sBUx(aU}dafdO=y8dB9*s8KElPN55;Av6+> zK}2IGnkZ!6YE6*D_;n7>S~jw&QI%SJ%3jO4$=l-ZAzCkU=#+BRbtn9#-DJEDFKdRL z*$|w4`E9Eu!b0>1{Fy`2Vhq`#)?9r!A)|GjT(7Qpmv-1Q_c7B+E<|fac!xz(L=XHF z(cn<9(H6;~HDcRhb&5R3EpU6sg@uey|5|jo;EIp4Z}{NRLa=8zf@}YO_TDu{?kl?! z^JC-0%qHu_8UcbVkW$ac-K3h$di6^l&X{_67-=NUkn+T<}BA6DJOMR25VN`s;wiiyzkllxdxtmZNLucohrxt}ajhc@|4 zm8~VsZfL4E(O z(yNJlwh#+6ohGifGk}?$gSZooVkRvg17x}2Y&L>jrk8k0u&K%Y#%$&Y-LYBCG{_fI zn`vrB&2Q?scq}%Lud)?*LdV9Iss@K<&G;OBqz18-hv4%XY-Q~2^U0Gi1 zu65U&-PLXrg?-Qb=J_i(D*3rcal{&1wu1ib_3puN%l!Q+ZlV+skNSUh{a^%7 zX#{gaHHjVY$AM&zp94lN>Axg$Lc)LdC)+t8;d7JY;j<^;M$JRaToS%C?mtd`A*69r zNy-csd;!?BqApK}ri4=EUMzh;>@>t8v2V+R zka&wkbxvl=$MlpZ$FzL+$*&?ibvhV6BhR}FOb;%Y_&1kRilC{E&J?*o(xCUKZ*b`1 zNnnp?wS;wENKL7L4iHP|4-VVFK?T7Y>VOi&GO#-}`Uu(pMl^OD=8CYTMf3)O&%#wC z#)WJ&C&IN2%tRbzun}R3NyMVB%rN_#BQmlXBOVK*jELD2U?M1rNTBD>;$t|a6vhGNM(QYpkzBRM~6Qm)G0t@Dgk<4_b|0ui5RdHk)hpbS>$%o9oTx_0LZv z`A$-sCF#O8d;Jck`+%UP7uLAaYAJX#zn*UTr3Qi@J=&V1Cd)BI$AD0 z=Bc2j<_oF@^JqhfPm!M06a7GNO2nPY?UjR2V`{U$JG=z1KNu|Ip2U8I6NA|Ia0*L# zIFTcd8q9ic< z8v*aS4<7GH0WJSM01Lh*g<#39zB!OGGPJm0tsjW4tREx<-dJoh4{+XLIOFCu$86x% zaC<0TnQn)uQ;bC<`3c1&#^MX3PbvX9{1%|ER{=3GhPNN!4@%yc0(x0#Fo~~JOhV9} z*@}={>b8ySO3@W)Ws{a({f|Vo9RXo9P6Sz^ zlqdkGpdf%}wE~_JBuxR%Q3SiENOo`Jp*X*IDl!S702J)VObG4n#H4>)a~)QD zQ&grpytC!Hul#QXa^0CC-uR;3-~6k)v6Nx*8H=TSJHjVdhxfHY2QNe%q&A}+b2%#` z9J0(^_~mJtJWAImBy}(! zWGyP$P?}N*!I)x?Qu41h5t4W?A?N08O=zL~losD6%A%EJ+j_PJo2yjM$3T7SqB@%n zH4^p|$yXYU<$8S?dFz_>H4C~-J?qDEH#jt**ZWUbm^aX!793gv_lay&1f~=s8fV0W zbVW3NJp-h~#hZO(U#fIW(=9}Z>LS$+f=!|ohytPpLylX6Q`e^ROXg!Faez1=2`b4E zvmCR&T)%bgu)zmGW-Iq=ImuVyXgqI_~b`#YlyJ*G7-3j*SOF^1O&`}rrK+b=9;4z=tF@Z za}KDT;j4~!E|Ym@vF*(Z@)$Oo09P5#gI(`c>>^l2`0C5Lv}0#aj6o@Guy%@N&cOh> zhCD*)-etspvJ#Ij1=L1u5OOhA+5)|<{L92v6*A6r-YqI` zH^d@SP-$HSR$Ku0oUT0`=yvE75^ivbrh5x?^FZ0aDu%g*`8gOsFU->Y4>)q|!W

r2AqsO^g#$g$NsK5qWv3(0l?lIzi8-P>Z4L+kcpwf1aZz}4yO*=l0h-&RlG2OF zQNlY{MzEbZC0C{svDRTO%LL9b9T@ltpR_1AGF*w>5sA5T^k}0>LE+ zlKCa*ZhMIRPFQwl035{-;nlmyiiHRh{N}SZs@{ZbgdYM-F~^zH@Eeh2&^b^`W!az= z64^~hOfS?PJpb_VV@?4F*HFmK0^cIXrG-?Kc|-D@pmBsP)7f_6h&}q6-LPb|;O#v` zf5C=cm~#8VpO;uZrSZH6%{Vshe;DSR{5=RJb>|Qf@TpS#DK_YivWpJ<$+-cw>Zd(8 zr8+!dE%6l`prD^Vo0E=%9Oa#fQ9#|2T@K-}z7zwtV>KzRuxA=T3ZW&#yvGdM& z=Dy{#uIS_7Qd8|5L!t?TlxA_j!Q+rxBn+@38DESCJqQuqp>l*Q(y$PEmuJv_y0(nt zbBL|nXx2GL2`)FN<&SvhehHce3Uq}nauUf+de~YUjUq4zNS(+1@Tma|wS{I|Ah;O- z&@p9{$pW$JxB>g()0>hlcW9SV7*o4S66VNp2jJv(_jWE}gKPY0*|H^%K|DWPVh0N7 zMC*qfLUyH~?K8c?8N_-T&u@Xs!?5T;;ux*^u1~)EB2@0b+>?$(F4RD6I}%J;j6>Y@*&! zK~Lxbxro@W&(IDghGZyqb6i1&tlmN*62Kok?3s4Ey9R;?wy2SWRP*XKM6<+=xLVfqBo0rIJ2Z#4@gE;ai%=m}jO*mS_Vhl4}q z&17sRnR7^-Bm^(HB@_UVV1u&;aPbiB@Wy}UQg}Tv8^M+8q8KRwXIddnZ zJk%&u!nW8`Kv?#c)qcmC9y_K9Da3(?7kEm)z~@T?jk|&l<%1nBDRC1|!Yh;cz@)Y? z&^B)t>lj!TV%s<8ox(8?)r}A-*}6IZz_(0X1EHY9e#~9)b_P56yj&3@0i8W-o|#1J zcceiNhf7u;%+Lc-mRwH}*qAb#o|ULgPhnSV))T?CSoTCJMU8vvgXMa+)mvFv9rV-H zm3G>#udFs2t>u2QlC;~+I>e6a&DG`pdOhj3*4Mks%WJJ(tJUqTHdY#~)HCk6a^;;M zv^LKy;zjr${koX!NCa(qzHuvhxRFF258A%X;kA_<;uZmsqe}^irYYW@zXTL^mjX=d z<5l02^n8Sj8LXsNo1|%GD0W8&XGx)s@KBbNhht>MW7!BE@8fZ@hf=!qddTz$!ykSO z;hkcF#f}k{6pzRrhJQXjgpEo4^-sk{ds@HyI|; z1H=Zj$arR@WQ`j6vwO&%D}#y!^myV)FLsMeS(ir4@zg zWV5W?TA7&dj2C~!=ye|~mjafvEGv0$xP^sGm~x({P+lPt1m1@@3v`+`(miCGIM^c$ z(#n5vLf!utUp!AsKd`+R`uJZ0+mO4V?u(=RPZP*AVz2WSYl!cLy2ok%Oc)av+Fo|0 z`yK4byP@tgSsmm~#$lXx)cSGGvTp!B;3BM`^Bdp`N8|ohNw+MN@CITNL;W4JX z!8e~M{p^?LVGs_1Ge00$-wX5u@%eBNQnDN%4f`^>x>$7!qj5{FDO&#5O2_Q$@-|F8c;5&CKRrK}3Hc7k=5YI6$d zBJ}t&06I3UoSIxrc%i1>U&t8&boTcSM!f|W6LVbls7Hrvn|zws(u;kxOPT@Y>a( zy=P9Ehj0CY7u;z>A^c-#TZ@&ekRsPSvkb0_OhKd@CU}f`^f2WC5i2|3UkQOdq4b9B~0-gIWQ9-gmhIOuZY zeA5&^gc2l^E|O<<1;NA9h&!;o?qMBfySIN z+fPQPo+AIhQ{PRthw0MZP9H8z2kG}uJ(P|w?(giLB1rdAIFs^U3fbn))^NN(>~YZ^ zMMh$a9k>{h8zaY8mj*^0Gd^WnzDR@K&~9=}f0-@MmyIn?Wka^yDMy|d?Ua{C?RDCX z)%8Jtt=a1}l4Q_t_Uh?MBk4EOc7Ls3Pn!L9veHim&1BH+t~Zj^It+DId%e|GqtP3n ziD$3#!jSd5Fc$Ccgug4chs1L~dV}&Omx;Y;uxO zkDV(>_-xYJGVNN@5Gwx+!LH~jCj6F&mV!@#Sm_Cp%L#ixayV%UN%GdtXoDoC5L+*a zn*sBiepNGDNT(@#tz6L&LEXDPXoltsgheF*pt}UjpZr2fa}A(8Vk4Wd>}hEb62bJY8m-E`5QncQcw`gqisUhNZNX{)Wk-(#U@Qb zQrm!W2F1w6gEoTIH!LhFi1oktqyLnU=z`{O8eqI)w0&fp*B!QHuHFZKlnG1L!tKdw zQ5}bHkL@kPW0OV3eZTOjBOnx)1<)+gq%A9}+eBf($&#JTCp7}ehgo(>**F2Fv^apL z`S`(h*VyHe1sXk2aJ)?#aQ4ckqv-GL>b;m7R++dGsI)kM>gy4xkf#SxhK4X?hqeh8 z!CMEC>zORkd{848e2>wbVS)wD!lD4iB?qI>)tkXuFr1>K01_<Qv~2zvJIEYeKznCH_G1O@teY#Kd>Uk;H;=9fa#$Mm~IiyDxaLt17 z7Q$J)&hfmHPF-;nw)_-3u61^{t^`h58yiUCi-)8cg8WS~k^uq6mzZW=gy92Uj+-a@ za>I3`EUdquJY&8Ww{hieHFEgjB3~MF%#V;jKj0@bFo{)-Ye_mv5NEL80q(}+Rz5!c z^jzUG@qLHYhhz5KVl7+86yQ}XYbU>>D^|6eOc!q5&o7nk&(f-Pe-=+p zhf>MAROh{7my+t-+;UP6_u*lMm+H8e%2*zC_GxhG>SEg+xeITJ(M@(@h2bwgH+o69 z(f>|59F;DprA?U0H1*vEs7v4+9n9O~5~kcgHmY@TyGBZxO<2l2e;A>jxR!rslq4N) zX;BYN33oWQ>LOKaNJabEwxIWhX_C2oGc7Zv;=K8}E~lG%ZWZlx3K5X2J|i0P?X$?B z#rGDT!4cd9{L>UX8ujER>hB%m=KLdFJ?E;HGfuyC9`b3>$2x;N8WyMj?{Z zu`zR@QVGK)kJInvG$X=1u(AySk~){hB+W$>s!COeoku>(0Y^9}9T#V;L9&|>WN+!^ zdD{=|0`{#(E(sdlm4K=eC;@ETETS9<8ceAid0}#os6Z+%=bskVa12vUzv4I_(V+ZD zJ+GBRmL0W3uABNv)@#x((X|NuDtR$Ynn5eyu{-SEyE!MuS=dx?_Bi24LKnt&RWu@^ z&x+-pVy61}eJ5&T-VOK0xI_o@aaIK*8^mTp$f88lE!nS8B}=Q(?lxAIyUo@5a=o$E zNV;&7PFB)(w@1khdac3AdSfjawAyQfW%x$-*W1lOySIV_t>i%6^OP(<5~t{JdRHdD z6@D0(9HuKb^2gFUH&=dA(v3MO5k<{?Wr`XN)&$A@Ib$NH`k24^r6-PL@Y`0gwZx!F z$Rieu$8JX)dgNf2(C6lx73y(>%g>Na#KKsbHwx6&3{m@M=-^uG;Nbt@pF5wYv#PsqFgVvH-XR!VWhqriCJz_aCAIaeFz|>#Q`jwfZ4|pG#$9MY75#K?C79_M_@2mAPf)*0y&HpYybAS zmto>}6oPjnhdK)B2cSKQS6wFn{|uqhBY8=;i$qUDHd9gn&5Vu&?z>rVzdzg+^cIx_ zpgqj14B0nW0HMTa3pC;j{ama)JlvB%j*iXOyJXu6rwWD2`w#&0I019^N#%kRHKw_^ z!kXYO`ob4(a-YJq?rtTBvpY3Y_bDyo>w6~MJi?DPZZ3y-%s|1ig z@@+51orR5pvET+Epj-qPiMAr#uCw5&5hEXA`>r7rPA{cYe+l#>0%G_rfa$jgn^G58 zl9)Nn?K00TeWkH`>0PNu+BIu)VzyR6NihBrjZZv1+gMO*yI8_?&jQEmJs4cWg8pJ^ zChmO*M&);gwge)H5g36Zj{y}fYBGy;Et-tDnnL=5)2Aos<;@{t zDWD0}!7v=3!CXp2!)th=;#K22!9-^D{uU~ebYTqBxeldz=p5{A$<`|_3+DT~G~cJb z^_YDx?b5?oybB3NzT)sE;8^s!36Na{_Yx&~q$*R~J#TF7^u(-M1up)V03d!Fy9LUJ&8EZ(t`(^Y{kovuLHppXD@mmv3a%NhW`vk=B1ZDiCJ7k96qIdTufSSW+P(XM(Qna1X6Tl0o4;I9!~WS7g|iW!i#9^CKAgADveW zVNN(IL(U6irc1kp2r1j*;UF_6ahAk}5HyLg^SuM?Fc3LG-acK!ct12EkX`kcMc@lQ z1yCMXC~H%LNko)g1sIxoy|Gk#g7Y~DN+Qrx{c3XguHDF4cA=;wn9iTjbP8^0qT>u= zcus_NaTIGMN8DI;=q|Kaa0JF1=@23C%o+(JCd?4iEwiEt1b~NdqyV?LOJ2{BIbJt& zB$_3{4OyxDcYl6A`8r3)px_uH7YV0Rjn+5mS+__2X-p+$yv#>`u*v;|%*$z)XsSnW z^vs?!tIg5 zNTpx~Oi?^q7?&C=1XE)AJ*{t-+{%p$ivs9ax6^jWNkW-BLenp-+1Xt{)kZ92JT{a%{ zHVJ4oSed2||XD2V81wDGCY#z#G6d5DohP8qefMlMeJvEHlx`M;O>^ zNEi#hm3=Wg6U2qz{NZod(aBj4|4SfLLSlO!GBVOjo&;I`4thQVr@$dzu6PeX&}=0t z)Aan77%1BXl38TG`lC%ArS<1#-nzm_WosxJ1KP_|ZjZ>ce=NX}pp65_jQuTIQW$`` zOrRp@2W?b}T5m;m0wAR?;G@S9uxUlP0u;|su=R%bB^Z7?GW?=LAT)tx$DtU=+Be|& zO+r$Ub6iRzxO`23#MT#}-R}V8r!pYZVw&R;uCRCJMY3bjmxJth1hlIH+U1lIzzTH1 zrvN~)Mk-oTY0qnlSPI)QGIHHmZe;}?`R~E_ta%K@9c%@%wo-RCAS$o)Bp}SW!VGW- zGo_gJ>J>;ipmsE5O@9SoFrVP0mDB)|%8d;iK@O*T4$>}!h^syM#5u?jcCg=#pweA6 zoGFseZI5n@$RfREPa*gMyw41w$b1c8yiY`HbolJSqva_exsky?QUOTLB3r;HFAo4> zV;ER-tBg;CXW=adp)OJli&H#>USNFb@YT|uYk~2!Ko))rpgHX>1ik!8wj@!DA@Vl{ z<#Nze>7-AZDAFwGV60apSuM)AT}-y$w;f`GD8 zfBebG^WrFNyHKC$%(XHNIG^Oe0sS%#o&r);jR35MfQ9z83?Oc@B&#GMISpuUiG6EF z`3nIj`!xXJxPTxHZvrcCo1ul&+FKy^IT+k5OTqjNJTuJQIQk3X)W1m(P*~&x^0Qz5 zr%$jbnV|<0E|KY&(Gf^+Y{)?g3jrOL-9@Y^gTO7>>K)Ky9^kV4SPm0dFfkb=UJQS8 zEbuYXt?*tH4u&H2fTY@aGH%Z#330_#EyjnlQW-$YvT-bKWY_pLoLAA>R3P)!?Q{fKkVP?>3H z%7?t<1&+pYwn~cwSeU6Yd&jV$1`VVyoB{80LB81E>5c#BMR3)Z|NM0XtwP>r3SD)l zgnszzAH9_i{ZJO54UAL&pcjVJ{k6YfLmVy2`+QY|e=v=lYrPz8+F?wF!qmxOM>x-3 zY+kQnrnjSXgpd(POYdSoFhI`lyDG@42gs6{9++1z@Sk5H;|S6J~dGfF8)9L07(ZtCn*{nGMj+ev2o zvIT^;;=X)$REr%>)lN6=cqwPZ#XyR_LDtn8*f{{VlV{YWy}120cudT?N7gx+UYwVr zw{7@i#@}^p!R3%9HRIS`5V%x4uY>3uw9#V$AoP3}hJf&Z^G=D~wX)wNSVPI?%{b&| z58P6)cpCS?gvqM*v=pVGtk$`l^HCeZ2Rc-)WHfI68A zs%G40Wx~}ip?6(sMa<&@V(J!hPPH+{=1z30g<6rtR~_*0!hV%F)_$6Gto7@&rClC1 z;#`~m9(AuxSJu}Dt$w?)*6TGJ%jxp+YIiwVP5O2C+YZ*6?bUj3rP*8SF1Nca#4&BI zC(X6>mELlFwVTviEziC7g)8p`9(?BTFTHm<1UOiryOv8f3gMX=#f`S9zex)ob{9|A!C0@hjw$k4n& znHyHxC%X{0n!LA=1hB^g3u%CwMDRXLiVnV@(ULipv6sGI6Lu;gxhUsS;C2 zX1=0o+D|GTbplUSjQ}beW(0;w+Z662go*}&9Gt`@xT~jw?u#Lc{eS-^FN&RfspMVg zYc2d>yub2Iag6kp8ekt5_=#K?N;e3%=5^}?sjBekkPBi?!fPMjUPLl0ui*SXbhQl! zlp`$@70boET9~6H9qw{WP+V(!8|fGUK|z_5xyAb8TsMLH6P&j__)r`GCSgMtYx4jc zGtS2jg^C;8LXV?|){ZYWxLVMKliGbjCUC;4LCGyr+%G$JN~-JwgClBaUMgWFy!}xi z5wTs+iccvRc|I1`?9*&=7>;XZRz*Z6S0*Qe{SMh4J(9x6X5JpSEA)^zvJ(<`$Qe7q z$5dqGPLzJYRM<#A{E3xFKuqEwn=lM9YV#$u3SWQi!GxGX9TSzAln$$EmkElors zSnGGwdfMo>2F?%}D{J+By*p?$n%(+(v$bAd@x&olu6!7X zL%exMVu965WgT80#qy4O-t?;2XKUu8e@lNtEG%rU^lj!fk8o4gF(H0piG}2O=*T5 z-x9m7dp*6$VbE12WK85Q?Ad7g3dSNB!COfNy4wkJO0p10(11iD57 zK^QwFT^O>!Zd9VLcpyTJji56rOzts_+8`Ms!b${e8(Tx*wm$>FIfM?doe8zU@}+jO zu}U;IjIL%FKPMQY6KWMbjFhs;+#E* zYE96DsU-b&Xvo6*LjaZR^*ac9Ad6F08US`k3&p2)ucp#s1A?*gT{wI8aVY(1Bc*$I zMPD2tYp!@Qi|`4X-E1spQYWIXu_i1hf1 z5kyF*`pfTka^{TREeoR{xiC>Y=&BS;d2eV+ON-rCGxux+g!l4Kd8LSjMLuvJ(WIR- zgfq5{jQMGPOxIR$QCY=@Ve;P*5UL}Bj0Y;%!$KMINqFK&jY8A0(!MtflLJApX33i_);OXkxBui9K9!m zwD^uZ3bY^Rq17+4ODZb(P`*Q3WEM2Nj^H6Xd)_7OeegS;e2o}CCmIj81EvjkoUxAzbf*dB96}YucD)HPQ*0qVXkk0pBc1GXsnFHoQ(f|~;{nr%D%Qcu35{Z&YYWg=5m4d%x@iCD{r6vu;4m=c+*7seGSg9{!3=!l+i0NV7D5VK*s^1 zv$sGmkkb%J!8YDc2BMwKgX_m`M5t8c*JGjDSX>w>mmV);XAJtdFS-<`F2F#6n#lEs zOl;0lz5v!Lt9|XorcQ7P5a(-Zf?r~p>}*qQFTQQE%x!5J1J&_Th3>LIBV@Wx@Fsu+ z!kBEEH-T8&78ThwvzjH-k0vdJuMB6&BlIuUq@%*JX?qgEWC|0W!p>~5?Qdaf(7bG4 z#j~)TV{BHlWo9C@q8z!lI{ViOju90hGZDYg?Nz%U_*2GoIAZ|}iqBkojh$_ui>uGbX-%IPu-ClELusZ0iuB@)D zH=#@G4%$h#y}aCSt*`f121w>JSZ?=Qz4pp#qnoa;^jqE4)Ki+haOM5N`>yQsJ82bSTCJ>%lvJQ6=^&0>VHz7^SbeoWD0$|9$i6b9ViqyCe`PMQp! z3*)BS*z7gPuOS(Qn=eA>OX%eY^Ox5a3CEiM9stM+wGu6og?D<(<9GV$AR$q)M#@vM zOhG{a2S-9PjWuwR)txFJ5foI%vz|OlFAZb$8w9h~=Z_txb_Q8nwvjc6{Ec@=ehvd< zeqf9#-AvdR6}B3 zG|$13JO_ImW8NktXiztNZaql0#+l~iC4f*%+S+eX9TMh<7TRZMcg0A!udrqD6wYVO zSbj$qMWU??mKfZ+TPSxK5$09m^yg#&In;~EQUC>)DYcwj1R>Qel&A0|%2;t^m|K)oH!p$i>mwoZ(fBF*hAG~SBubB)FszQAPl1JCh z*{2&1lMX5l5hx=ng$z2(G&a3{ZZR<+kTp9ih6Ys2Mm({CQ`3b*iTU99$V>Out6y9J ztnAOBl>}k-b4DQM6&!3YsIv|W`1D6u#Yz;_MTTT}Twgypxt#%-KLqh9{Ky2;#Hw&} z8IwrZPUdr4Q;wa0|7T~PUkw`^!vwRC8sI?kc&zG0v6$_}ez%kNk)mTDELK(LTFrE> zKYa%%x7vRHLFk!UWE2ak2zT{o@hJXQP%PUiW=?WJycRkGhDdZ^jRU?Oo)P8 z{H&;K6U+Dmm}D~*%^Xs8ceaMTLw~?*Sw%N&Nrd2L$-cxk^SjBGRdf@i$4d9eF4ym= zptzzl2R=N{v7DSg*27Lwc~y5D-dUnpyS+=nmXl}bYemy8+@UEkuQ#~)RMCi|#rjS7 zLq!8OAEgg|>wIZNR}!?=Z!TY=O*#;J!TieMN80h{ipG*SyVLMn>bH2aW2!Aai_=njJbdz{ zOAc<((b{Qw8wr~kmf3zNbU;Bz8O|ruRi;!?1j`~sO1Sq~{_SRwrQ&vM%pqI0r1w(} zd{Xq*5|!Pq(Mo1@Ikf4T|s~DF@?}uuz`jGt-1spM`i5$h+drgU+NIS_Vfh=Sx*fZy?wOi9d7WIa>3TA0z zI1pzXfh718z_95n2KWeI^rS}Z#YrZsl`%LWASrDPm^*9{c$AR}oxIcVi{#KQthPi) zh~V%gX50l>`8$A;BWW9k+o-k#)=_Pmgb~*qg#n)>qlDl5(Kw`!^GUEP5Sap#UFnY%8;k66T{lF-nO&E9D^cofqnna}XB*PF^_eEy)suE7Kfci6-5yusG zs&Lxj6blU_U8YP^NFt3;Bk_#I?-xFnWZ>em0E#c=D1toA5ae19b!4)C3Mq^XM}GyK zvo9n~43zfVqfgZqpz-NltX)jgU81=3GLGe(c^%U;;smon+y{RwFKd&Kakij0Eh96i zj`_uw5+d3%=fUipNUv{-u161yK%e>O&tUS+A~g>kDD8q$BTD)s_<*t3NdD-V$`LF?ZO~3r zd0XwNCm&>I(zE9tc-;7ETJx{zw)%$(LRPRTu#^@DK(S|-N1aL1S#SZ7Q?*STLaa!_ zZYU8Xy<;J?l68Ttpdf(iETJm2@R%Z)q8W{8kdfs_0Q^J&EM;`7Y6KvEg+TVYf#0yo zjmJB^A=3|g)9Ec}hL1pbO`-G{xbRy53Fn{=8M(}O#QILd)4i<&s~SR9FZVeZ{(ul+ ztPXL}QhY7zKW^;m5*1P5hT^W5m>%(;uq}k44w(~qZlFSU*%nc!0(!BJfu_UYbtiQu zl4BXv{P$og``%OvOapDF{DOg}_2#g*N&E{(Xf=1kS=IK`&OCXRZV=?x+B@W1Knt1{hkSkh!M&=IXq zhH_<#1K>N#L#YW2-c;b==(fHrclGX8LV6p0@|D0U#?wQ3mr_^{5I>$;WF0=vuY=x5 zGKq=`!8Cqw2BdXk1Bq-wB4~6wX_ymoq+U+VNE`@ak5JAg*yl1S_G=QO4C|jBg_eLP zrc_>}jmW3utZtUa5WAN$DTzclGDmyPRRxkc{`xtX&p)R1q{(SgnH zTqdi-JrwH*K^xo<4Y~1bF}l%>FQO?9QUWq&qC^;>)yUj2`-r^F)Q(_?3ac!y;E5o@ zZvg`CA@BoHL}rGOvvk9f#v+ZQEJ1ah0G!S9WS4G8$)Sh`U{1m>vZdNnhQeLY2ei%g zb-}d}Bj}o?f@i@4SR#m}0S=Q`sG2u)R`%iTe+eKSRrwQSaH$)E2;)-iTdbhPvg3l4 zB?p0o)Nh2SGDItr+9M)5C5h}gVK5`BVOeeWf|n&ICd3NLwe zuQm@#kw;U$}EQ~2++_WG=xv0(si)* z?ogOgUH~LZ|J{^B{g982Y_GHDo~U_Qc_X{%O5CLv(ZKbzIQ|TxQPH+R1!e?e-NY$1op^wnv4(j#6(9}7M6!Fqe8%Dc071S zfstJ!4#BYW*_T3CF_38N(Jf>iC)U%OjCx<7Lpt~9MIFJ4;K0e#a0s>EOSWJIz?~u& z=f+~~BK~jZ`;z5;s~f?R6VIqko!}_{J;2b~Ig?jQ)mi2+iKIkI)Pt!;d&q8Y0!^LWZ;+|rSv<|3_DeYMf3uQvuO-S+Bob0z65r)%9FJmgpE-DbbB z+E{6|T1dKu(9`wq%F4=m3%>Hp^?K4x`~ALWF7m@_yN-YHN^fWDV0$!vu98H3c8x^Q z6!nyiXg+(rdoV<1P0DWj*{itX5O*u>|Jn6}5hA#;+#Pm|qrq_Fk6#|c$8bB*9d%Wm z!6{nTOB_e}b!VLYmuLRXzn*{O|NO_-^JHk!4ot+#?7ir6a()ngsGZ6G$5fjsHrogi zb-5`|6f4__=ZN*qyfY?y&aRW4RToZ}5Gt4l3pDvF8v$l)HThfMJCQfTND#&`vHD68^wuYB)dhrHOIyDA&DL*X6A&s~LJ zehcQW14zC$KYLxI)18ay;b(8}jF19}HeZKQCvBuJ!}A@9lwO8>9DYO3y@n_H{>jaq zor^zw6|YY77w&?j3pMe({qFwBU5H7+6r7~+Y#7??<+oAPp-*^_GMW6-!S_a%W?rS7 zUI?|?C&j?zw=9)mY+0MD%szDl^=SM2P9(FFRUZ?M+*Tr@j0S&|PyhJT5xZpiJndo# z)tB7Zfm*M z?XL9FmG&B04SKZv%9S$Hzgt4&CrVZCKXs}I-#+q}4!5^%$DQDgf9_uRzyGtpS8y*J zApnxcvi|JvJm{_kyvAm|5}XsB7XvTa56G40-RHNIP-x`s1Q7sq9;ETugP8|~p*#-j z?s<+wJ|53=95zSZbC6rJaXD^Fs!9nwj!aqUjr8+OhwbjgA3= zjc&c(Yqwjyl|Fc|I@m0Plj|+Fl18$ct~Xa3t#-G!mMk}0y?(DzU#YLIbp6Nk^H<&p zTq>AeADCsHm1Zm6cQ_QCUf>kD)Jh9Em{+e{d{G z9tz8tI5$?eWP!^j2{Mpw%v(|0)^lB5%B(_h7nw>0i670X&?cKwJalDpj|k5zPN_(c zo}VnlnH&LN(u&v2A@wfTQ^NH`y!0B7iG%b=jlZ{5;0`)jsbq0@-({~b z5>hd96T!7`HIYhDcBawo^;+GuxxALPy8V9A?yan~m(%vj@?d>AT}_v}Z6u&f)3s)+ z+kjhXz1OGDgF(ADSY2Ijdh(;^ue=+uGlCj8hWg>-b4Trq#Mt}~Rr&@eTYAN?6@Q)= zGX2JXo#Sx+$X1^`9+Ij}L^Q#Rwg^d3M#jWJh@NlO?f^}G&PTzCbFxM}1L&#c& zhr5Xx+o2GRx!&znX5$d$=DNfI6k+=i0xF+bNFWtloG05?wh8M6$Y&6d-VM91;Ek7T zA@^y2IR+r#L>q%GV#H-@(0A893yol0+lHlKOFNN zsKbf|X8joNxD;ZYwj$2->@2|wvCG}LI&SF{B6ENRwXPy{7FOw$c9n+=W`r8fRAQr2 zclf9^`RLgyeyp`WsF6yH_2bCi9b_h{CQS6u*dvk04CglQJ+#Gi3x z^9~{OUMl)e^PbFSxM0YJc^c?--X44Uq2tkEq~HG0;SZH(1l=;C6;+uXgAOh6D}vVl zCLOsoC17$ZGyk31ao6Ru&pL!C1UesxcEUUt{)WpG&9bDKZKgL(enG>Egi2jbEx8@b zSxFfPrMz4UL4LXB9l@sBx!sUCR^{uVL+FXkpxi&PnIgI4Sm~czRNhUrf61{0#&Iks z$PDH72cDg|9^^{J%Te?xnYMc2o;-;I+K1yZ;u-XJ(lJGo-Wpznxhmd_8?~mi9@j`$ zwFEmz`OQiZGol%X#26!}Xq;+X@@o{lN(-5ZY2T+6Iaq!)IUQx*s;JfEx2J0!qSEk6 zKhLqFPvy6DcPP*Ls#-yOW*!gQ>3;HDf$h$nYNGK`)SKG}5_I!i&Bwerf*ZQyzsrOf4 z``@&J4xlM!-E^V^u>1hcuN=MVvC zcHt5YFUXyPjZN`=L3`~o=lwOmeue<4ELE^w) zLMMA0$!OR+MH=*EAA@zlne=HfY6I{XQ~^Gp$kYuhJeaavHmN0chnIG!9y#b@3zJV2 z;|FWPiG^T83PTR-EvFmY*a+zMq4l#xm=h=x!`(3z*oTC0O8hCgaA5nTNakIuolC`! z*5HvJGO+yrE~=1;6I_3g3x^hhd_>fjLx;uwf&&h`OgJaJtgD?EKUx4eOLathz(x=q z_=rgMKM&5@g27+yJ`a0P1kub)QOBQHt+tTCG;o(#3=_5q?Z=mnJ!m!@JH3FpN^2eR ze(K1X+ku0w90Ru`A>U62IemdJ*6&>Tt65N(@*)&W76ZUNYEqH0lDsu>jb_)8sbgbGn z?E^g<#Vb=%I@QY9b8~lPBvsCAD`S-dh>}y9oh?$yU#H3Em!)lTkDhnE@jF@hnwFU#bpe6Eg9Tx!Z{k3k!N?2pKcUy^=+G<|L73KGAx2^mLqP zsd_rDUND_7)wXq1HG9Ewe~fpMl1!PI$-Z#R9h=L#S5YB=?{mn$$0>xw(;&?Fq<4<) z(ukYnYgPg&E8%|oGsF}dvFEP`j( zP$qpFA3?9>vkwWgN|&gP7Mc4EB_7stRG1@CxC)rnbpm*AeIC54zRXYH2|fkGuY(7q zTO1L9YTQoaenqq5RbSlJ(o7|kWC?Ck*%g-sVBO-Bc6LMwI1r?^D=rJ5`2|aHXBpaz zELiqRS!sZgGqi1DH=X~ywC?|gI7bfIN2S^u0kXV20Q0t_zq6@|g=rA0gTy3CEGZ12 zx;+W->^|mI4WTM73xK+vN$);Ul3C!DAnRFGBLMSOCBgetL9$fbJZ&kly}(piB>?K@ zmlW@(CDRc5nAF5Pj@1e#^Yc%Vm%lw_ZTw_;)pddiB}A*Z2QOBHq%8bglIC64SE|*_ z$^OcJ55WGTr{q?4@m5JFSVQn)is?ae0{n{{s+UK4f4gviOSLD!(d=CwQd(4f=t6)* zoDn>PC>kI?+JP8(Yd~a$22gM!-~=K8!V7h&7I~Um@HNYHBQq`gJ($*)9^oKVWPYqn zr{DzNIM z`A7#bJ3jjkEid;0n0)m-UeJJH8{zo|?j>!v3#6SaiVdQ7Vyb>R1Ox+0SOKC8%N%7sP2@b^AI z^dcRrtXx{lwv!<1ps$gczo`Hqsw8wBGIZvnKj@8baXk_T^V4CLO>P&FL@?inpg6O( z`q>}vC$!n9t_(yX*)bM~ACS?rdrc?D5x-=#@S8u>Wa0d9AHsQvr*Wc?g0<_=YeeRP z;Rs5z$H>V&1cLJN0GgGmV@A=X>>-;$Dsn?HB9CLaz^xWV;H$0^z<7p9oo;>?`qlOb zOp0<1=AoQ-7%CZrVxSmHtjCxZl|Hzv{mGy*R~~?Qx&%zoBi$T`KUR#&vxC)GFme?5 zN(uwu`o-(aT!jcDouZAz^rUMOUCq{T8xcK3jc62MEa9YSk?xBTjYB<-#qfV$=fH22 za0+b8f-oq#NYZokg{4)m#ZHDa}bNqwbaQnD zbe8}dsT9Ea+ZC|#0vs9CPZU%^EbXieQmbkNK$ggPy?vgClE#Z5^J9gOky!v>MTG#q z)!C6a1$dP~kR}i4J27wh;zDMW*SVRP83o2y8jdDAV9uxEZ~nob<$M~Rn>-OUXUlf% z?0l?mr)v5^wtQcPzxS{H;1AeF(KvTn>sLSg)9HDH0+5J|$(CmXDsohc;d6T4{4H`A zeDSJLD7hhZKU(r?nwO$ZhK*# zq7flhINKVl%_TfHcz}6Hn{yxRIS_Q)!vSZtBSRQ4K^Own_LF&rodV(+Z&wkilRZUM zxGTsyoOh}TzF<5@2wAWM{Vs*?hgn#+HcBtUP67Xa>rmA@;J6U?OTsfq{!qvsJya|l z*HoF*n>>V+)3RukGZ*mev&VU|ex_*hp5-gCz`ez; zYJmrh(xr|x_NFet+O}#Bw7?Wht}J^gz;6|4jSw12zB7HJ@D|{zXr*mv2|*Ei1iOK^ zkVy$fD!2f}dG}t3KfEwU zmd3y!W=hs zC6MY%!C|#Wfev#nNGu{*%daq=b#K3D&-< z>dw$D7~D|!%7J;p-tjBCk9fu1a*#1` zmXEVI3l0{^L!6y1RcGK~+KzvH9;%kQ0XuH@Za?Q0lWZSZsgGn7Icv z05upw6nZO0xi^oSRt zJV%ErYL%{ve|3h7tLo7YtcPc8x!?oiGsdIBTnk& z6drSL*eB4`&4Nv&+ z5=$PA98viu-1Y3T=S6ZwLMqQ+?^esdzQ7K9O{HMdA+gM3Z+!}nJtjtu5darvqv_c2 z!`4}|THt7W_Ga7xQK!At)}Y%Qq>bff(r)*XbY*q9w_NY{(^g}3z0q9mH|kAfAFQXV z?d5v9-fq-ao4vG+5YOq#S~^HPr@a@hyrq~mROyPfL@C_uUzfZDQ!nzaz-QstRD?|Lb$bdyUs4X!6fP8|8x=vasXrrw^5xZ~E zT@N4l6> zDMhvcJJj16BFm+?P@Vh6IV}+z9k~v{K#9za=8DXupox9f(J_RA7YuWrw4&ZjPD-=k z78$2dB13A*`3`(vwF~afDVOXyha{K^or8vOD}k?>WJNU?qBJ}qcJV?}S2Q<$dUWBJ zSw32U;ZFaQzF)!gjr!0tl8{aiWiWuT2>eE~UZeLk9v90nNj=2!6Aqhg^Of2W5~Y=O zddtmSy%-6anumeyWVmJ7e{8Rg0(ODNaW%^x;0{q4C%)POwiWYi=^ldkV+wG3`xd37 z$l_5q=hNSM_{>A!c-ZYc*pO@|>JS zrDNX!YqK{*KojJ+aDq=H`#hxAwpqC)&vov zT;lG<9Z|o1)P>(A&b)Q6u;yh(Ltk1RfOFzJmKVy6G=)5^--p@)1Oj>zd^H{D=cB@7 ztkFv04fAzAdIovmI4>wntpE_~h47~&jiVJJ&~635?`09>jMxf`0<<*=ZPWnA85V~W zM6`AZ3qpyfj)cAsa?l`43%reGG0RE=m^e*1s4X>9AVhX&?+Cq8W?$X{2t2F2veE#) zQ-m{?q#6wIOB6!UBO&b5Ji-_t_!Fz`T4j|0v?mC({mVNix6*x*Zn2FYXESd#R#r|n zh%`VmCnSQ9cT=E$oCRHU{Dc}=?urTl*uO(yi%o=&*NR2oO%5q7CApYy?!?k*=8i1C zBORFKoJH6SW zqk)nmUv9|?ivj?6wXA2F0&uHV>;3F%v5%EtsJJWuZh_V*aLW>#!5QzW+@^q0-zB_{ z&G9QO4q*8v!Qvk~G310q-gJg=h2-NUVX~l*14p@7`?t@%47vAFF4!A6)R}QSidS7H z0RIeu?~%Nu+eN4aq&lLPg#pma=t$tcn+4YzSQnK9pgqj1>{(kcpe@jdFGQFZYYz|i zM4BNvqf<1f+pC4PFmK(oN{dXG|G?(bYo&BVPA!KiH-)$#n)3|k`ECl`-Q zG!{bpG&|+(-qsGbUKRnl&jB2Z)6JfHj;woL=qM|Y{~kc_2tkk>P;`tDly|fZK#VLdqWSGefarb{84`z zZUkOvYyxc`8RsQFrZOq{+wc1Z^{qXjQ#sSqxe&cQ7>;oE@Y027m@-t!Ai2-}coX*W zlj=kj4QpAorE3pD%D@&!kW-BD;)MP}42$IKK{jKa!PU;x?|?sn%zBGh*#O{zf&gSb zh>CRsI<^&9ehHpr`o(5r=@zAJ97h)ARqoENy!{!B`+UK=FUs9P8}7`LXKT9$d${0I zgvnwV6;MGs6-0Rgx6bxY`$`#%1ps*>fGwjZ=;cj_3rR^!bwFqQONnSWImO{s!=f}3 z*f}z*_qR})qzmx*NIR59v2(DuCA*@yEST@_(tMx#)?+r_(k?xWMO#HM@)d_S0aR8l zRsA94o>&Qdp(<0{J#VO!k;T6MB>;%u#*PB-ZXS+@$l(gJJLm<8<8iRbRwQ!=AQ%z1 zC^A&_cH}U1f*bxb7@3z|`Xpv?vF0crL`Zn9Bi=TNZfVZ4m5eusF0a^D*kV9MF?4w` z#|H!YQ<9*QgAR@qZD(`^#SZ1lq$@@S+@exqBVrr+MVL1lMwtH$X7k&=c!nyP!FjpN zHX|`AO0y8krU)m!fF6oYeXQs>Mx7H7kmn!Jg`tg#XBXK^iJTA^9)VB-hjI* z+wTZUBG6O)>izky-N;#Xp{OL7&Y#e93T|kk;|yYWPK0(z*f~RvxUuZe-Q5(qf5`ky zJayU5nAgHELrk~K22MuF)*+My;1($$e{9!YH*+MKCBh9^sr+|;en0s-1nG2KR4x)u zry8wq;vgbhvQkMIFZ0nKY;r##^K#lHn(7f8y|YEl0rHp7?Q>BN&lH3Z5p{;UNY7p> z46djUKzJWPSS(!CA@m^>*>mM18hLOAbNt~A`rPa0Fk5H_@b1Icy&gY5DOu@ zj^aY@OG+y11kgQ6hr*MT%qkq#k*35bLVskS&x(huY6Or!K#%jXX22B1qlIy)u|hB3v=))A+K z@C{?R>CTD&C4i>~2`rvv`&f11mUj@j8Il%AvzAyEV#FXU66qfhD`_gS7zFQ9v3UV2 zO+IIr_rN%EoNl(kznttLzhHz%)r^Q8gtAfn#+%{C0OW+WDA!doK17`>;TPM1!91vW(D=C(lr{W)eQ^4|ih#ze5smZbCkX6m;9zQWO*ffH#0^ zAR6`oG#)?rv;%!4%1m_f5zJkK)$2Z@t%$joFkIm`fA|}AbTTl){}Kq5pz-7(BO|@! zNs#65pyx9h&WNj7iOMuRza?QN>;lOwvS0ntCXdqkOK>RLjLep{h9s8}Yo;l;M`YSR z7T`$G)?q=LzeP(515lR zixA+MgF%VQN{)l>&EQ}y)xJR&yr@+6dd}fk5R?BNjL(|KP~5>* zAZy6yU~NDkD)fccBr;&m6*jX&m?_1ig|Cojt(92nuK*0@6P&b?8bDHsnE#{%!67^c zY1eRYSbOq`bC4tKI6z``o!SCPQYZqXe?>TL8^zcOmHIPa7p+7ix(7r5khGtI|m!iLBN&r6yRcv4RqO z^Fd*qla_)lqFYJq52jh154aLuO%yYL^(}tX!Lm|+{K?7llq3P%m3ECb06h z8HC3r?n%bZeGUdU%Th3Z1J4X|f6reQ(n`~c3lN1xJ|I8)<$wAFi;}sK*(RWLbSMN8 z92+o?Nb^EEEW3+XQwEJ^vei4F$2`Dg`LP@(uwY^`O1v1wwB90<_xlZNBODB6e8oU^ zp3IvgKMg|zTVx_-#F7VxM}VPi&=qZ@ zFt@HIf-kX)uq>?n?XTqI>yHf6tv=B<*b$Se#pt!TRX}yjoiRdPvvxD6imsu1+T}jO z7=8<&V>EVSE?xu5^7xDDIo^#^_x{W*gtyBl9sBlMU6h5!MeTB3UXk4NduwmmGOJ z&6}8^#|3GKera(43o}(_@0gCv3y<`LGvNKlEZob5$B^w%QW!w;-_UMXUkLRd1%Wk2 zd~)#c00iet_;R_203?*9M2U^%e`LMh@gOy>#sXzQK>#635EMdcc{`x{z=O_rb`}uJ zN&`4YPi2GQde{o!2NkuLwu2$~&(6WF`omB@NER?`ComNt1~Y-ULEh5DJH{g4e(23d z$LcuoNNI5}qlL$z9akDrFd6MQvhow=#ZAy2Z48E(;+2 z54!vc67gY{qFaEgF4-;GE3V?Jw|1AoGjW3g-Ca zQ{(g`$I;MEbm7AZ6B`+sEw6TDm)j&BnXn52d0D9s@!gDenv3(!%V;N}AC7%v>}r(s zhi3$my}L;VAytO;)+|W}Ct_Czg^VRJnSe`jjNPee>D_VA*{dlBIx^&aDQ zt59+w0LF5)%9MT7zYW>8lO3ib6yj5cq+pJ8_sje$s{~WKcq^tx17j|nOZLdq zlK1?J{hi+Uk6wh5;qsrqj?B)8&CL0oe|}+b|8Woo*N>=D7MSIA6DtLwbaG)+KBurK zxp=()VfjWb9`FBHIWnIR>07Bmzc zZa@OKXuw(!myT42xI-G-aab@gHi29b751V8oH$zV+L+ZaCjYPNS`4z&4p_u}XzRgz z=76^WuWbBS1(;{MMEWCu2D^M6D*Voopd* zr3mvYg^2S@jx;_!3QNbO!f-sUZWqe_5k_hYV=PWXj3@!Q$gVpG5R!~f&j(}xG2S3^ zhI@wl?uGl-(4*OZA&D=J>AmEqJ`1v$}N_`J}rz^$P{^j3w7zZ3qFAyVE|k$q!bh^)%M|P(9wV_ z3FIGv(Sr__%=M>nigkPePzvoaC)HutS`QLpC5A1vARj<6#}!N&Me#~uOhk!#_@l{# zQC=)ghbF%>OD8&Cf9KyJVAx2Fzi|sAHNM2!&#M%@0{mQuUO~^j^1Xu{(o8;gwYRf% zus!0O5##5s(vF06#{jC!&Cfhm{j*q1#-B&9#L75-d=7G4x)(6VLed>Y56j@Bc4k4}!TwkCk$5n4urD6X$I`n`UyH&|Ok1jR;rjM=Z9bGGr$}^OLDZ#kf+LPhwcT%6O5OGULa#)p6Fg{m6H#_BE z!QHn&cGJ$8mJIjElm)p>jlgY;JS&js*P5PBxaAZ$UYo>tK4nK6?`)?K_VAwZ(Jn5IqAI%7oZ2$8A3t7g#aH2fF)0HHpo%vAY#M&o<=0~ z4Fk&Ys1+EzNmvnuf5DjJ`577s;(f|g8fxZ8fTR;A%%CSu+>aj*l6-J{;)H4kkT_?b zqJ-Eebs`~zeL0eqq_6_Uzb8(>D%fiSOF%^N>mfhD7P7i~5jO-_BV$|`E7wtw9#;Dln59kRMN8=3BQF9KVEDqqP;BD&JNg~#p;cX z&X>=$o)a8p+HmG6r1Zu1QEdqKnthlFX5DWe(oahOrN)u1cGc2%kWCpQ_~Z{W8B|#V z@kR4FSOJx!+!WYL3WHgEJ1}~nwGr1<@1B8S*#2d*4PzC)t`*-dd?h7BHYnpM{>N27 zry__hPO~Xc7ncP<|6UGg63N(`n-1!2fLUi=VA%A2VOaq4eL@3u=d<~~vAWO;Upt8) z&mB?{90=0FZ~nm7&!Z9@v?+TpQ_IUZWu^Xzca`>cuF`(>JW*d?Y0oECcOck@ySn<> zb@gzP73G;&4hy?32d1#dKP{7I&aCM`4K-mKgMoLjYH=r<|TX zeB;&5igyqdQP4otmH{GE=G|~ko^xJNNid@=nUUJo8@uOlJ_%U{y8B|v*}%bSl<|$L zW*HC)!>BdsNyEw$@q3ijDJ>4>)1*Vg+&a-w#-8tf6;5mm$qi!OXmI}a_lx!T8vDle zkxBuCx5F#bl6u+H*7+iH5oAgOu)a=+GtQ#6ebyvj_c%Ch*_bmg^7Rm%a8eK$^WOvL zIFy5d4sGzd-KAY=_n@3D*^|?ulR7_ z@soFps;=Y1GTAdnc$+PSq&HBGEN*J|xn}kxBt<59Nsrg%&hk8oC=L z8=yxxnFCkK9>F1kclg8*LXG}GZ{LKSEGZ0N{7wL)H6GKBAX7ukLZ<7s?1Cx8gKB&M zIZ<*GLI_6qLB-?!WpJt8@{0|^szQWkD+QAY5pDstlhK}U0%m*plXM4OWpK{gH^~JG zivsx82-&>bYuc2qA949TIvywY>MoFz#QU|()pW|r0o)w*QQ#IAQG(j{*5ibhMi8L; z+7kcB7M>iBK##K>c&5(KAee3B&hfjK=b zU*sWUMAo*{He}Cj4)kdaOEdeWxT8!Z#=59t1pt+iXHS_O7``R@3;7Jyo&CLoQEvg( zREK1oq=dr8k>@i;Yf9`R?-k`E-F9LN6Zg}z!O|x$HfCWtON~p)Y+JJKDQ{g`%G;jY z;L8TL1NhcIg#+1|B-L{@lv-uhhOm|Sj?I^g!{Dj`g`wj3^7k{LvXcct>=^@hn7IT)S6Ee$Olfza`IlyHrd!3crSvEN)% z*8q38R~5g)O8WBRC?8(M;Jb%}Ke(4-zG&JrlWsK~ksn2$sKt1J{@>}R=X4!A2V-cY zOw<*gt2{X77Hio$rU3b*?|s%DF`9`K*q|34n36yiaPd~{%HNQ;cwVf0{l zmx~ttLc8#&vNHZL^lI28DCq|a zYB=AjzFaNapTEv(8Y^?=5cuA;%S{4%Prjr(-NS{^=|=tdv(M(O_zLciDed@P_&A%! zm~REXOD6Y7S;fK2rA$^>#S-xO$*s;{JDCft0`1l7o%Qi;F}Qp2(lEXJ#k9A30dZGF zCXwgHud)tu8!1J>6-;BqN8Ks>hc6WWHHCSJ3uCyD?)&6o?Z#B|p+NvkLRxcTJd+oJucd)wNUT=5T z>fQcYYh^WUbn8jeGn;$<%B=a6uUL_ef8eVv-u{KN-T5!Av5ttc?9V_f@ddNpDTz-b zGb||#=6i=&^b|y}kvS9;1n}Phc0Pp>Md(2zGbk+%=TTx*qmP!)!TP5#I*ZJqu*ir1 zCTxPrA_K|DWu^Y$cZQ`2WM7em$x!cXhA{tt3SeB za`@j011xLDHyllvV&b4yGd-j(?V5-=IHsKg)t=1dyimvJ*9 zEg8AE%pd#CGhui;m=6RoGL_utU>3K~WZ}ofayNmZq%eRb)R+sYF3^s%e)otb3U3C2 zJfqdmd<ZFx5?z- zhHU&2xuyVBT_=F@_8J)6Qv$3LoC?5`c*OwfJISEnT)EKg{!^#QWIpAM$S>*|Wjljw zRG)(!efE0yV7O)eeihyy$k~_n|Lpp~2rfB&$~OuH3%PNH76vTIoZ7(P|M{KG0s{l_ z2DQ@Hyj*dKZcGNrAA8w78=+%f6#nc3A z@Q1az9C4% zOT@5Bj&PUXlsjNh;_U%|3?NZSb;VRifj7lSD4cqeg#Z7bhNgTjh zM02!Q!db!f2`|XKoiVn#;6kiZ=!lUzZ)-S6X?)R^ci{Xsg2OI$MNxr6UqMshb5l`~ zW?E}mWd~wyS2Vbklr)wFW`v0n-Hz>-xW>FgEs6}OfmObb48P@ZY~8wS-Fnb0-GbX? z&`hpggTqr{S=c4^HX#|_)q6;CZT11X8i&ibpIn3yB{Z?5rHAY9UTtFt2Vf4(-`&}P ze>EK_#LsuDnx_HS>m91RFh_Z^uniC`2p8CPvUd?{KiaTFrMTFkuBz+!!Kd6Fhqr<=s!SpFnuc#mD z`sw+Oy>iEg*fJbyikF-2&CFHJR$TUe;;MY9(RX)0(Jy;3ag*$Y;p%5@0V=2<^iu?Z znpcW$ZwCgafLs@RS9)7eB(yXr@JSOD6i_AlTudFNnM!b~sjJ+Pq>uUYz`&RrocH+r zcYK2sYy`^Nf*nA6k2iv6u0oU@H9$8}0*gu7Za-j-j+sfc@OMzA;UaJEI86iHalI33 zmOtj%D)wv`0C5$FjS~H){{S?;(ah9viS1bIaj3~j&e)e8J2r-M975rqIL6fr7~N^@ zRzAtvt$6(CPYdl<9D94Cuv~8-HC>T71p3C&e>;vRpG0fiwM03zfmr`^@V(L0mMEWA zJs&+2l$(2peu0foPUfve^f{ns&^)%w%ud>6B8YsHT6wioM{ICXxj15JQduQxV$x32 zcAB)4Mq018lVr8kq<_~|*9U{aTC%pboD5JhSYAn2R@b}jR+6r*)?3Zhc746Ri~vr7 ziOD;P7k6;46nv|;A({NI5;Tc00cNyzu&bf>>?7AcT{Q6!-|OIDE~Q)0+>;w_y0eGa zx%iiO^39zCWR!v*bmRWUA}5%IGa-2AUb?qWv6Fhky&i)7n3zBd!?f1j*~jC7LJ>*V zFz%%GSr=s+#olfNxP>iw5o~@lt9un;TlT9jS^L>9pE^%&ra7l}SPR~DW}n@e{l~?8 ziY!D)p}!uJN58E}fyr&!1&}B26B0a8U?=dw^n}M-42*(#M&U0ow?kwtyfjQ?A4R;u zZd3{@j9|I4P5}7t(>@{_Q+BE(zR`tsw(~G=0ujUHHaNet3+exj-#%U{4FwxtJ(%KO{4h=KKWxz9yo*3w7s32 z9H$U3W6we!qN3S8gin%i^qd&i*3LdOGfLkt6a&e;i^~G|T7-mLOpEM&AYutaA|mLy z7Klv+knmdo!0$gu=)vo`0zGC+h$L5lh5z8gOO2H_?Lg3@<7Ow4^khmf_5AXK%YYet z3&5-so<#nT*^AgYN^4jRfw^EcV@L{~ie~iSTQK_Dg`^sjH9{tS3GF6_#8*J}L;(Pq zSs3n#27}H1NW8|Z1B$rL<(<(yC(`ykWsNTz;+jDYC3zjW^&o*5Fl=t}QfX_yMRl}~ zw^-Vs4}VP`AW z$4zsiLX+^4GhP?(S=#1FoCSu$q5z1e88;cv@NKZZlq)kEt^vFhB~l~Qs57Uk6J!Y) zV>L;95sRAkK?ZDDv-UxVv8(VKvt{~mz7Qb=fNcc=i}9BJVl4SNzfN!3vUeo>VCqgH{E z|E2@5`+ELg`!&8`DKadA?O;u!Ap|a(TsR$R<6;DG;Mxwt)|wLOjiiz+wlpF}E5d|; zbP9iIFQ?@+p3)MHQB*ZFK5r?f8eyuR%O_k|p7WembAJvQ>Y8vp(J<3g>AzyfXxqNn z8`>6UT%h@BZ`B-bTpaiX4>_LdnAatzu+G+HRA^O^3LBL#geag5#K0B@G4?mi0^fjJ z!;9&biTb=vYDEod%!_SA?R(oKX=evgyM>?uwUK{~gFRN+$kWBw)5+1rqJq#vYSnqj z#?j>uBwqu>=ko;hNcNhnLk&y=MqBWDTg!#a#zQtPo zxZSeUEeq+5Kd&voPQwWE{&ePHd%^G_IXT5eTbQqrN}_}L{Q&qe-xlaw`02R)Bnk&8 z2Cy)D>GsYgVnsQ`EaU`GXi`d9L?0Dme->%#AW;}ouu|X|dI1grERjJ?Zcx&G;+X5I zWHbdBg|#^(MKc?q3&9sy^B@LxnjmtrES7deEJ&|lc||#NgoQ$M>@YU{AKwA&z48McE!UOdz@U1u}ri&63N{L4d*DdCy5xHR7!Hv(xHo4XpDBWi47xeYv}%}w(aUtqmWJ+HSB z=Y8FWegc~^)y-ZZCc*51SxN)$M;T2UR&dVLi+Gm@30n=JQxD=Up;z1Qp_r$%qk z|Nq&07a+;5^E`}{T(Zqd99OJLRAnb=E&$H#Vy35iy64e=megXgAXfwdXm=q>f~nry z-M43&+tWSh$1VmC9FkJW)`PMD+EJoPVwQ--KJX#{;z1GsH^r#rn0BJrsaVajAxoBQ zSDY#*D%(k=?5ceK`Oi7`oclVrd!~1KW&qjT>3h#T=Rg1X&;LIEX*8RqMy1?bTU)Nw zR_cDC*;uZWimMHOb+xp){Pj>Gta!Dup>3T^k9uX@cXO!d@tJ%`ln?!d~n=% zUkdogoa*IOig{tJ*9;u@4Jv_?Le5~@&uoYvqNGvjdQ>+Zz`>*h=xsRI89XoKG- zq`Nr6Yt``QF|0@CFtc%3S2_rlX~Hmv9$HZEPZ@vqD%w!m&nzH6DBF($!yA0}S$JcT zNoOK!A5SuWTHdhqLHrz9n&ZdMkA_$7PyI-YSMFZ6UsNPJ>FABpn53gBdhq5?|2^Sf z;rCIGoVI(@PTk}(9lL?QUZ1y-;P7c1a&w4rgmFrK7Rs$vkXI#W!W}1?r5v{bIw+l{ z13uX!dLqkJcy#Cnvd<%`D6%h+2^>0LlQjLny~Exh;olR!uaKuNl(ZZ8&7z*5AOUgy zn8HINa%e`s+0Bs|dGLiilVhLSu|mMXd?=NgQHo{g$m?j38I5C8@RF%>Gj!D?=|nL( zraG=4^r?xAoQ&$I3KPgNrSLdr`Y?!M@`(<(>8ioA08Rpr;Zbtf z08u?Mngdmq+cW4rrm^l@se?G?GOTaHv1$wwc^5NUq)jkvlPrnwHlb5D7A?~QZlV@W z)2nV9`-VTVs6u~WKi#hcdbJuhPXi;rUFq`-Kul?7xMPzt=jAsU{i@Hpa^utT>Sbp9 zdkG#?35nzN2Oic5J*?jnIq`}wNm^yS&Ty{oMm;>he$~69e$`k^CAn0W6J4r_-3V`L z%A&9%HKl>mhgx1~`1N|RvRY~S%`*NEp3>Ty4?k*orBpxJb?ajjHaDU^$4&+wr>`^?wXM3h8}K1p}0j{c`e4*aL370bk^Qt7Bfv{1k~&%%)b zFZ10I)`i-hDHmRJi(ElYf2U+;T!e#5gmvP(+#AU7%n8eai~$AesYlM5x$u86ob}E= zgYZ++Yw$rXyhbz|Ke#bii)A!4`=sDiX>hA8-LLi73~qOUO$u;pPP>7r1d6B?4Ha4h&4Ni%0GD&Wps;jhHTezD^ z9BolHhB!w;_5(aT$Wo!(v~dE)b$zt$L1&QdXBOV-DG&=xO&#F35^OF8J?X7Ai62dw z1fyMH5EvE`)eAyY={%gv467y41|b8N@X~_q-W1pbf+q&;bw-?JVKQ8CZ!Dk^_N_su zQK)Df2XEm3XAD3wFD!W0#z#^HaNdY@xiE_2-&sJNI!)dO72V_m9`s8Q1Eq~=p@ZBp zs=>hfR8pA(Td$hn(RAdoo#=B5tdj{~i5_+d(haGIREvzI;I{?B9S^j6VCHoHh(eE+ zOWBf-b;rx0ftIa-?mX|~)E}Klns}t=>iX6^@u%7UYp3y!6s{eNfYiTM$FXE6xDJx& z$y@l;FSE-x#Ok0x${4+V?a9_Qqk;Z1dwb^*9FL$>#co5KCPYmx-LC`G>r~ZaFl@*m zzW!-;KRWiHY!q3>cDIgKT^B-bw7Z=RW0>H#HO?Ims%Dc8^kTQS;dNS13ZNKS)+1}U zyY8cVRp=z3`4ywC<`c*;Wm{{e`0J^!ZoWa&&zEMMvg-Xa(*?vQHoUK}`BS^N|ZR(;s{lSJVMWD~_2Y<90 z)oLjCmM_+pi|Z?m+VaZ#ANuIEo_D2+ngye;!Go&@%@auJBhQ~WQKj}9euom%tKy4G zSG?W^A`MSJE&Rb9lvSMf+AXht@|f;Bw%cl>P-u9#CZkcP*9)tD&2JXgOZ9RIX>guj zuK6PU`z0|5GMG_*XyE<4@GZTYil65hqA#I9Y8?8WeLIej-Gz{1_k)~C|Ky<&{MbF&(G0pZZ>=z%4+nh-OiVu7Zq3f z&yJQOWm}xf@s9pP)MT=OWta3bqZ4*iT#{NW2}uX^uU(Tjh<#UHj`9gTnaS2smehQO zx)G~c^@fesfRYZ81ljj*Np~DA@)xW-KLxt3_hCTwAZf3jId|^ib1(M?-JV}l zr?qcg74yDzRaii`ZqRcaD`?lR3t2mV;`lWXC~nAWKKD_Sg1e4VpxvJSr9gNcur10; zlZyl++%ppFw>8-M4~C!Wwmkc?N;hD{j(&z3O=lAuzU=*DAC@OPH2E97ZWq^kdV|f; zaOu%L93V@d_qJMo9#=iXY#sVfF5U0PyD{b7Jh%=}X{bI|-ifH>D%o*g8~sRxqS#F8dyB!jMn>Ih0}b^|P-U4)JH6 zdBd1uP}M2j2d-0#zmO``Z%tUJ_ltXkg_}XNn6C-`-#-}@&wDl43tYBLqsyOsYz_ zmiQ>C676(3mS7J=mLl7ZHhH1Mz+J~_3+u&3u~1qs){8TwEtHxo%Y|a8SZ>sc z@TjcU)(VwcvABXjN2AbOn^uhDxie#UW4yTqHV)DlnC$&Zq#m<}-!@@LE&>I1sYmg@TCe|A#;Fzf3Iq zU4x~_{%$BXfl-3(w zWqo-a*D;j5Vq;2Py}40I*B4MwI$D}47lbrhBELCOBs;Vcp%gP7ZRfCzzrKkhn zj#CFDqDTMbo+|{RxF)V)RsY5?mi*dEVRf~#;@1l^q!_H18^ua(eZ^l{_G@*o?iEV4 zIxeX$7c0fuYGGPFftvxM5)^}zV=4v;^|PxW6f-LbYA%y13a&*xN{Yh8T`3BROx3?J z``S<#_M5L90>!~ax|1jlQzwCp3WRHJV<-^s#3>MpZ5#+i!i9{eB5~<^6Dty~!BP~7 z(H$w8gu?h9Y7~Q>*Xi^5*sA$=4Cl!=R#v=HX?11Un<0&&yoNIewL-13zUEipYY>+| z77z(36j#@pmE|e98eX=Mm7rBrvT7AZZ?mgWEV?xcV;+-g6RrjQK$~!#i!v6$wWp_| zO^h+V!BY-_HsK=O+ow&8u>={l3D?}l&?ertvR6vPZ)`b4$qc74n}r)uG-%7658gm1gM>W^J{$UaAyvxj@NZFGG7+UtjgSa&e`I ztEN|1DpOJ&ZfHCuXbt78S_5}9y9xs?XmX_}@DwK167r4lD61`wb%bighaLs58ZQylF8(=~_5Q=~c2T?`fohuV70{JbPt4h|>!Sh1wcY7wff|3R2X|t80}43TfhS14=Wj;NGHo zqqJ73td?*xbZts{!RrweCZ4tYcvcM|+~w@*3S4Z}oz7SdC~8uzVcoI5M@eh={6tzq zn5;5wcEi^&J8b6=XcsPWoP)~FX7 zW@KUsQj$8Zs-7H0oZ{*&U02_#(n{uJUoc?ESUxE-kFZ3(m91*hGj9bIkgPd|iXW-* zjN(V?kw#^L9KCg@<)FfXEM9a%t+Sij3^}%UbZg5Y8@PQaE@T71#f9?OQItXC$Pt1% zLSw9e6d7ZDF@|&yC4kiY^&Z(*sqlpeJO9UD|9FI*e<6uACD-4HOmoELwbXOTHOA2q z)u$SB!5?u3;7SDt!piIG&8Eq@_qjS>1$WS{78~_urM^-xH&$xvK1%b|R@T;6R*UuJ z)hQW(rZ`D(4ZEuIMX(7==c_m6!X z00HW%&gUZ6Nu=r&mp!B5=9<;P7R_19)VQz^mGHmwp@@XvtHDe~A*DKBgbR#LXSdV% z<_G>?SZHfrq2kq7efxy^)Gf5@3IJ)IxekBpDU0vI!gH@|GkJ7d4HhT*#P}Z=X8!2T zc&mfgRjsaJlI;bF9spTFH=o3KM{KlAA}})HTeAL4ZO7p6;?T0%6;&~pS+l$TzyCMF zl`XqVGaTFKGLH+}6O>g#)Wh9aT=wEe)U9Vc&5*6NzP?^8mnwzwdKo25 zmdk#jRK~HO^=8p;R#uwclx!`%P6>wA?gYi`SXsLiHBJ-DwR}g(#2Tw~gxc`T=H&mz zct{M<##KVphqs4Q8~{=1GOJu9I*F8=%2H=Es9f_ozydd`f#X6!#F~2l&wVQ*xA$tW z6l*F)?4QbRN{L&+#Q(sM@(KlS9i>6bR=tm@8&cQg_|lGAb|j!ECRL@+re#KbjMGci zSaD_)4gY}^<&TcVn+sx5<;og@X7{vt0K~?}+$fnuGGxHC;>vPyrBPm=rQ(W(!dk6a zTyKEZPeG+mY3HGQ!<;>8YNgwyAlhtV>InfusCfd*V-K=o9W!% zZ&*W+-F_Bv00f`QUUHG=BvNq-%bd|#a?R%8irB37iwgr$W9i3Vib(3c8Z5UC|6|wt?C$GPs@&y=la!(cH_7b#nW8$^j6&E$wdJ((+9_j|o=PycFo1Fz=w{nru7S={#Om%I&sk;tgk*^t)H+Z5%YM^*ht z)f+ZigReCo?>zgmB0?5KqnwN03|_lidOZMK_D&Z%CgHD6981pXYKCsoRwH&r zR2BaHn5;4T8&jiYu9KbDj*(_#aoajBQY_b-{<4+FJ#}q%KbWek%E8RA)vIUDoqPD) zZ1dHGgd>x-49>cH>O26vHC=IJ<);65`?YSbwSltB?P{~t_N&|8VDnAROIkA0u7X+y z889vRYlfBwnZrga7rg)PK9R1qj>|>4Dy6ML(jEd^jhuK(&CQ7qT@hWT0DgW z;p4QlTr2p2r4@Aq*l|DS)-{CP-dS4CQS$-AH~_-YWofy{bP}mKnWg1Kd`3&lHKT(p zezO`sE*wNHty&=>#rJBkaV;$-gi*!J4+ts(E2V(znDliylf3UWytPufP`kaESGv59 zG_DFM^$J3;ho$2l6@7cxDprsW4Voa&4s{9cYZ3>ekLu$gA*^UJGGxl+1Zc?xHMmh* zyR-CYABlrYpZB&}e!kajAm%glpIo}%?_U~px0fiU(DS#ueeqX+v%B4D?o>Cs?G{oU z>f%+8avqktB=cC)ryNdvaq_vTS$5F_`izp{1KK zd*~1TRx`p$Eqh2a4BH%%QNHkY9knbrm^IoI!jUHLsQI&w+YG!$xwtk=}!6Pz+nT_=^u&}tY$X3vOsCS^!a93UfR#uXZ4qh88{vA-Kb2)vs**I6^3{`iL@ zyxcOL0zPG1Px|(^)Y*<+vzYVP>RKGH3HDL7+V*hnV9*`bH-qa;C_~72E=wR*tCziA z%Nw+CcrYf1C|@f0#r5TKVXb1O3hZA?ccNpUQ z0J6K8R2*E!r)x`$t4GW*b!D_-T^KnW3QSfr(}j(wP5W*#7VnzZsG4do@^!!Iq*9+-Io+QO%GX zrG0U|iERz#aR*7g(5S2yZg27O*M#TRvJ<6YMt0$bKd6ezLDl}Sh6+)=o%x>MoS)Nr zkeJStjIwtUY%($Ck+#QzqgVDq#L$%?YW9FMXHsOuBq=BEviMRTiK&)jAX;+yF}@gs zq3Z%#Vuky&W@BxACBlU*8!Lv%*!I;Moa-87VTuJD^(wRR_nzz{ivz*^Zy_s zr1xsD6jLcdvfpb-_NbY}DL?%n%O}6OT=vREe{JRVo-+%wV5C`8%wiTv@TX)Ly_aAZ z$x)BAX>>;hS~BFvZs>3(1;Jc~`H#!&v*1*6?JP~l;LKmw_N}DtS+jh;^Y0@})v|m7 z_F)@5Z-osWIls}0#TaG%zAzT5T({CIl?ug5xzSiP2t@$<&J6`^+V0unf04 zF{R2v#*>x79Va8kndFNfP2Wo6`GwLE$gD8E&4J~Cu8P`!_`m&egd>K&F}20GTCj<{ zan0h5$%2l#V_|LCFReEUYYme-PCeVnDx!Tmn4qJA_CB-0SuC5a_~3UOBxG>HNl9-e zd0~o@mR1lu$xH4+BlAO7s{_jsqZP3K@Q+@M@IXr|9E6-cZmu_R9pA1sI}(oX^HbQOh9tV3>|iFPm&?`dBEoUKAJbURj6QDHR1U1n%<6b{ zAt37I{(t^qMD*^}V5Z#?DqWpuvLu}BMggg+w!U#08h&~Ml&!7}#nDuLg3{IN4Fq~A zGsvnEG<6$B7vzyX?@y%oywj&LB@g&$!FGYC191c$;$KlV&Wlv5thePiaO&9~1t;Fq zF{TSw8G>ieNO>luN>HRABW4oB$mkCC?1~z33h(qo?f0OL+t`aCrN-FbjUgu9Ga#)> zDljDL`~3p69Mz3-#Dr29R6wxcH|GQH9})mtlShpn!ZYn64cu{=vzNFMI| z#F36#y;v^cKX0Xo^C!jnT61-ErQsC|Q?kSK$|aa#dnb}+#wgnpq2{#FT+Tz8NMgzvSrw4<_wkjH@+IFZtTa7uy*NWoV86UtDAg+%AtNX3KMQCA8n zHhAn*66|oN%HpDeqo=a`jjTRqOJ#{&l)YmihMIGr_}zh2ja++T_o~rM(pW}y%7vXV z)Tz-i_a53;w@6l<%7v4tPW5jmzXsAZSej0CJkB{2%ezJoSbCLC=df0c1K>)W266B_ z&f7L|{g}79W@x_PN6fd8G%LI9TnC~=6a3KUoP*czq zke(qa_lSaLQicV!hcaPh_abY|Wst&T%&*3f9p6rw_rA)EXwK3f<$ot)KwCLW0ow}s z(vQWlYnxS#E?azhBIVWYG1yB{H+p%!vesBxYpz?B6!tltsa*C}R{X+hp@1X3#nrXd z_40D9;5U4~wCpuk>Qi!~2dkFgN8cmiGdou4uEm$r9Ca<_(KAPXcDg&-5SRPJNM=&J zy1eHuI^Dgzo$|V8H1=HcJPZOmtC8ozMa0Paqf>83%;z_yXE()_3mc3H$c@}`vD64=j$ted3^;*!`7kUMHpPvb(OoEKXIZ;3~a;i z_&wb7Cth8;;`KKA$8%3V{gU_%hdVC19C$zfT*uq;pXV>1=T=`bC;D0x3~A@xlVay3 z&T3LCFZF2LXpUXC3bl!&A3+Q6*=rITqtXNvXNao3q+VP8NC5ZYW=lCT-)y-y0e%u> zjyhT*`ww!YCRqb1HYWLW3{mk-32QaXcV?|R(?9#(PK3i-mR$_T3YmCZaI~LKobu>1 z7OU2dxWo^_NF!#wzK#H2seoEcx78mPGyVNw*p6d-AFym(@k273B(?aX>J1yM!PlCP zcLJ8ZG7;q&OnYzXcqZ9)Wg;An%eW_73CX%A`}j~Y@AsFc&%F7LQzd(|+VYyWcY6)o zs$CWT#NMh^TW%D6uen;XPGaw~L$2VL3XSqwnY?e6TEkl{cwVVq0+eNMZMiU!4| zniBkRX?GomFdjAyX2u66?>bfl6#_fKrf|C5Tnl!H-EM(^%X~j>2nyHJIr;3Y{uc zcO8dtJnCA;*4Xk|Ij9VeSxoXM%&|skb!D}@I!kw9R!X(?a>ZLKS4z#onvV)t%e9sD z+FH3;tF5k9R;Lt3dqLq0`b~o1PP<%0FQDpXhO;{5+(O-))s{?OwMrtRoO6|A@84n}tGcxml~&Wpwx17GEuU4V)*f_$$rT@=9a9*r?%m zV+GZJDy2fxo03$&86YY_s4r&;*(towtUdmnglL}vd{T+-TDBu0(H|XKqARqg?NdXZ z-(Ie8Af>sB5XY6~(^=DuvfMS9F=Y9xTF5AxI}oDWg@LFjzgV2uK6ee4BFf*EnXeHn zkNUflrLZtJB}H@_f0xUTUoP&59K?-Di1Ts5RESlD~>d7XDhJj%XC;kU@n9LfpHM5Eb{o^`A~G?p=eW zi2HAc#l3;((QtPXf6((feXmZ{|N2$qM;!0Sua(Nh+8WYY3udC!KFj=df4x~;t1bI0 z%jIIdUi3?F&NnMfue?_AO3m7oZ1|ULWF^?~t67A;(bEh|eXcL3q`msLY7))FE_&A* z9tpAkxv|B*NjT;@#BE+f@b3@HIFO>>MVRA?{^_o9M&a+8)EL754K4glT09Wa--U&! z^#4b-iKV}5uoUUfH-#EG&?crwU)-Je*KuKGy?GlOJ%0lwTOC3A6>r5~U#YKqvlOH+ zH;P^pcbS(;>otVuYs=+Tf4Nj&Sugm@m9k%&k}8lPNPi}a9+0vaGwb3XEhqT+QzkR1 zbHKH{hgeJaiaH!*msM_!tumx6OK>zICM(BKANHT+97t8dMZF2C#OO}8{vvgqb#d+B z(9-QAhm4wrYtCb68lyY4s*ys&2SW33VI`t@{EPqO|C(6ya1EBCd5rE3J04OnKl;M% zG!fy`=qoiugdGfBggqWHd?`=<{biJCT$`mkgi4-Y^vfmG*eI84E0ucPNBTpd)`W|q zS!@={Q&L1+IsTu_qJ^X`#O&%Jbvl!3BChp4dYZ`Q*qTV{!elx&u7yuEEk2k;Skgl8XD$+omc~ z-R!no{Q>H0^!#nq>u7a0^5ZhAXcxxmd%v^kb?SbDFUPK``&O#`?yy()F>2crmn&5j z<%C}3mwjX#R?5Y~EcsGa8V|!VZ>W4r z-BA@n)msTDl;`Fj%Ant5TFTi~a~`tPoH*K6D9SX^NfjU$bsS;^=-F>2V|euCnc^&l z)8@dkL`%m?LA_Cw=8H>@_Hi(L>GR%J%g-Y@z1P|p`cE$1@Aoeay4y>%MkEXR;;-b@ z6fT#I9&>LJDg42s+U66D4V4cd;}~89#6d%@#ps)Yn{y8Ao4R zOkSlJ8GaztHWzv#YTN(uWA%yEHrHTjY8%_+LFg)zNE-di+o8QRyjFWB@OZ0hO;Bmg zuQt3LTtT;m7UL^(peb)_+iPufL=awFs6lS4%U%x`AtK8LkMp=t8dr-{3e8!nOHr;B z%MGtkYSapa#wrTg7HhSNUumxSIOe*#+MJHh>Nl<{luxGlyWAldr60!6c2XtLMNvmpNxZceN@Dy{fp^^o24?7$M~PV~U5s=_|`ixaD`uEEk&*hY?;q@|UbUs_*oG|J`XT77j| zXR&q6)ZtrvctQm-xiM$yU}xKZ zp8vk~_^?YW@e6vL)K!1Cj1ImFb)!Ap>fCxobl#|X1Ay+g8@FyW(d#CP8uWkuCa%}$ zRK4cF?|tcNy*um-Zat41zFOVJtrz@WuiJ}%_dIZbPi|fJpTIvr%B>fS>5T3^4%6!AyiQKgSFY8`oo8h{e~qE+zyG28z7F^<`*fb8+TWoRf?pJPdw;Im%nk4tn&V$@kgNB6F%&%%6Lk#q&04FC z)Xt5n*JuDoef@8d$4-84fpdbu=?{9oKgh|R6lih)^>|WvmL2dcTkw4P6xLY~w%4YS zTSVjdQ&3;7+3g9e?FGQ!2qUoG8tgEvv9ByJmkDk3!9s4(z0z60lI1RAK@iNG41I4! zpy?v^(UAZpy|rNaxPXa2Q$X;IdpWP)@757C0V!W;4K@W1$6MYQ2(aOM$?%D{7JN$t zA8|7UoZuO~9rbfOfZmBBObm&ugc?3CV`>u%w1)|_!Ikb}+aG`_<*1L`{Mqvl=Ss!Z z)x{za-j+8wt_g5gpnoe2db8ETtq6n~20W#K1@?~-*y3XguPKYZ?d@!Vo#w#9HoJ{+ zw>0rY1I!4E(eEuNKS59mc4{vEUIF=b7@3qJHW(@zNPKO9cqfC%A5KP(QDk&G8wMcB z?=48~5|F4*Cj%wIz5>dMePsb4R;xK|x2HlhFdl4 zR7lPNp2==A%Bl!aptRQI7PJQ5eu=LwSbl%N$r&0LmFjRb@OJza9qn$<{Wb zH|~uE+8MFRU0|;*IWfKk8u5e}^Fr=StH*y#j?J63UiS)8o2m*blrLo&Qnr!?I*Qop=@ zx5Loc&n%ceb^+Mow!qC!fQ}q#+T54#l149byEd|ey#WttJ+em3(}<+I!*0NwwTe$j zVKZWkk#E+$9xg2EUh?HsjR)4K!k!3pd-@D>^#*e=Ut%<{EEI90-tL0L^pu0&*2oLl z<}3PgtgYeFU@RLCtT7*;F}>lSD=u9W%B36Q(#kQ6xO98!dVSdI`JK8{H1$sl5;6P1 zCX5(Mfz#Fk2pXG{`*F1`b10I1ksihXcF)u8T#b#4jm!N~JpuTVQX%4bqusk{enZv~> zTYU%WeoGnd_`@3O*_gFnVBSwecIuI{x$R*O0?O~_a~C!-cl^IbtJ(BHyMutW3UI4Z zb%CA$C74XeE1NC&Jn#vj4fNncs{=#_GA+EkfyK?ekT%$QLM&!~*rY#&|HlJrX&Vs<1H-r!w~n(gBszG&HoYZX zz(vH*;chso$cjI$+1zWoSE!*JJZF#@@+R5$U1eRPCR;gI65u8ertOq~c4i1Nr*Oo4G zcFgKkIV<8)?2h2Ii9R>y_ui+vR|HKePli36bVR;PhFGts_#%%NdT0(dx`&W?#jg<; zHCT*d!nu08Rlfv==aG!Lq_#^2)`!y{0uNDrDkW=t3Em@uPeRtSxO6F2^y1!;+pm+r+?17t+v+p4`@S4fD!kDK_~0!z4H zwt6)oG*P}5xOd~_t=d`RTj9n00LM$8DInMuJL)_h{YQ-}9d+PJJO%ghaU zPV>U!A)Ot<@zEHPDk;@!;p~9_e?h3nP^DpA<*xLgIC`}<{A83SfrN>MOD%r6KdcS9 zzz43DX{m@r=%EF&Maz+?*RJ-gN@C=OC0>R zKz=j?@_^QwH;28##?EGsjoR4x2xP|{puNbTUGZBRn<|`QKC%GhETOn1X!wE zkpF?-kv@RWabp9UuGPV|I}g7Vj)mkNdH6j11Kq&o82HT=axLrwTE{v`0>`qj14GFt zk!mIr%MikAwl=8ex4?Bop3xb=ZNU87?P8in!euko_l%<&b(fn!6a2 zj(IVEkv1VFfWHK7T{MC{-#hhte}C?QfBDV9=wqBan3No<+#!zqP{eNfgDxDKI`we8 z6w!=O9F;6ljZQ@@w9aEDit0Xgkt=#@|8hkalX69Mn1tB4+@m^M^sh&fLYX;79$TDX z3b~@MCdB!p&n-wk9q2SckTADNk@UDIzfK~^A%hL+xzMzc=D{IF2QxC50i(!xV1Xpu zK{mJ6yjksfj`ed$&@t|74ZrCP+XHO_DIOj3!h%Cs`|@LD9B9o<0pb`uJu*9bnq;-q z{H(C7(!TXDxl_m`+(IrZMTfeS0f15#LN4^NQ|*{8HQ2(8TidV|R1bZ4(vdaPfsWkC ziHvFo=r_ZDC*y&Mr*F|5)F=pZ1P&+10Eq$8yRG)c+Fa>&=7hp; zm|8lLMp^rte*IE+I1pbqy>>tJIT9PlTu@(|U!;esqYnqq zQ~-4gX_b^{CG#T{l?pK-I>lP_x_uGxQz*#6Mjmu~JFX?ks>7cmqIOAzR)=YuQYR^v zC-$=(!2!t2mm$tb&*ut5jHb{-3sbAHG(wV7^&~06V(bnmrlql;aBA#oQDc<$cmAW% ze7e#u)cq>i<_@*}X3%m%#XU15M@4lvP`V4{-RR|Ds_*wEs_%izh|;Sx!;Mkq-~Z5G zi0JLi2qKRyRxky1{u?smjLh@u<3l9x1P6-ZURm%wN4!$9Z|^edr3tSw1h)Kg0co=B z`Vb~Pr5iwH>$clSV7@1(2Ffi$zkgyL84g3r%F+NVs2+@G$I%#qMI?ynG&%hRULrBA zQ;oh!7g?{%4>*(0?_JjJ>$o@8>{)5xPsoRI8CoP|FpJb#*{u-VKoa>R9V|H}b&zQy z=7j~vI%StMJ&+tl=?ubSr=>_O)U=63;M7H@qv^&*t2sb5yPkA41;4G)H%;+G)1-_X zFGn9^^?Qgwgj5uX4QfWw22xoX@P!FGkT8f}w11S76WWT`L$yr@_O1#?9wUtZwxC4D z5aq;>+fZqE3~MKs#RHgRLcC4g2A(#JWe2dSxqAXsGfM%a)fmzObv z^iLBV@7Q1qr<+&=px@E`RU^Q|f14eT#K8m0r7zGdqcu8q0F4f*{57A>uS#d}1pf7# z5;NKxYCN!@`ZasL3ZYuj)awS2Xb(Zb?CQu_hmIA&8#=&Jt0U30-Nl+DX2=tHH+-DT zBhH76Kd6ZCV+h64f#K_lIm!i8Kdl*wGev=|M@S~E7$aSwP$2Spv2EN*q_6h;$A>MP z#KpmHj)(G~(dX9acSQEQ>PK%|$0Wbjzcl2b=r61DJ87|KLNL9~fBMnfJkLwq%kEil+C70m5@Y$i``?U~vRXbkzeL)S!vK0U z7*BpMp&c|XTt~$miXwOyR#CLGgJ~SCWH64HeB)vqzZ9{4m=8oATO45uMp2TwHxgL_ z(vNQVjNxsKWv@I{2jd^(K*^6^Al{lhzC4*?Bz?1Da7B9bAm~Y!`i=YUPq&I*GPs8d zW7yBEC0MjszS1Wn;zso9Ku0F^=Uy66DMm`p8oF38GV4UJJvl1jwt9HYw2-@@f15KF zN8JJ$rzV_fywGcxe688g~A?%;!?py`*rlfD8k}lTJoK<_HfK{I*6D8XxOW>s(m54geEXslSZ_SHliv7r;JUEicwu zbc}T1Zv;M6aZV4Y@M2V+2;730TgY(htJXoRP-W97lFB^P;f~Pc&O^OH?gwbSrNswdVJ6 zlQ${wK}WhLJ^REoJVwQ<;;CAEUy3=iiSOGpTTV(@$sMP~~2c zL#gHys&wPQbW~KkFmiXH;)T09n5tgMsp?7htl^dk>XiQH*J=-dRG0&2uw|OSJ&mb-%a(HA5En#zNGO5{O3R z8w!Moe8*%9YSl1f{LvAJ6-WQ=K&+Cu3InhLb`z5wtZ71YQ9$jRvD>jBW)xQAMm1dBYjfUPQp zR3*#71|q&i*)tr?6D9hBRF4GM$Po+!hU)Pk-IG|Mn2H0>uLU407b{~q=7k0J&%vbg zHa2kD7)A_@raMx3o8n}h^iosNDI}N+Mr^jEU^$XK>qwHU>rzRgZk3?=vx=x5ByT6& zqEahM7bkCa+YOxdl%7(ZHN^8ucxlZIN4v-(kkzj^x{snrBD|Wa3EEXF()U>!duvhc-%!60&1&8xHz!?)7>GJ zF;opiDLPrkno_k$EGmv8Sn`XOor>lKgSZ-TPA~UBQ0DPGYsd~Pt6U?-t@>qQ^d2SL zajGBDE>JILI0iKd!)%w@^dZ0;V_!#iMp_JYJ;DP_;C8dogF) zJWvv_JoppoWZEfu3gy=DRSy4N;2@n?I!JWvr`&lK*y1an+K9F^KT*agK|gU!DBX27 zdWH63T&9&`4a_sR1z*JgM0&Ks#49@NVU;|K<(Vni$gj#zOMH=oAuvRnzvrDf^)3(jah)YkIQu=I)cJ1Xp>BHZxg5gB@bYXyTK;5w> z&zooOVimfk)T@XB$Y5yi)kUz{M#m{=P~r9PqqgH04caKCvMCyM#C~DAs%n zMW9jJTzCLjcaj@H?tu{FfCkM2iF9Vv70flnAuCo?AzMImRE>}b-GE3P%fi6Ka?p!9 z=NShFQ731^=5s&kwGqq^og!a;VR z5~ezb+A<;u_kR6H3aAAh`KlER`Y&6mSwa`P8 z3w)ad5wgb=3pGA>@O6EfgL#eqY4$!k8S0*GA@*}&U}H2=EDc{HiCzZ)K{^~m5d5}4 z5Nr-J40R4MDbv`1NKyghFWkN7biY5(=gfFm`NJAh9LEZuB@Wlq-IHz-_+>nK#dcJSN6kWjWcb(!Lz!3{6QxQ>zDlIW>=m-|S1 z?Nia4AUvG()`CK?OMJRb#ebxaKwae{i;K(h1~ApB%0i}OKs_{=8ZKcJhgYk(>VPRG z>8%CW4lR_}wFpwlyGbPoGBPxO_UuE)aX=Y_cARgIQg7xx_cl1{_^D%oY(EQ*3|wcO)UZE1|V1sQT!Xqj&Q1yGXo9=Y>UwKOdvLK zS{HA`3}6;wH{tlWSWglErvt$DItq&x=fb<#cH}K_klMEtshKOv3&D$;(!iShgEaYg z%*zA?1Tmri6qIy~j3u;mK*pxMDZG<+b zg-g=R9LRm{5|)_JDE>5uev9yBumlh*-5cxZ@fsG@#}&WasrqI1J34jB>=yJWK9F~J zkf>xIq%pMe=}S550O1>oqoV*1W#}0}``A||aN_J{aI7Op5^;?APIS!RTgF9d6BCBf zUnb0}BvUwBYX0B~9h9bR#_FxO+d}+|<=!GAlwPwyFwyOp$LOQciKuj%s;PfxXlTtz zTuBk==JCLhbwzK;Q>Nvz1LF6h0MkuUZ3|jQBMVZILS#c4FC!;`_FGYC)f36h)X#u; z)e{rS*Dj2Srki}Vbs(gT2WH2kPmtmV&o}sX>q+cJ@tx%7@ItNSHfjWe4>&qctEfE6tDp-Jn9--OfVsM|@zgPrD!MAU90KiB zkky>X=n}1vVd7I8NYO4Q+Zwf42_ETE5cOEuN+E&En}LmYOAj2cHfzKm$xufgTi_oc zH|3(!O=&D_jEnNS9~<47?xJKTg~L1fJhz(AF_{U1qvDg4s5EWgF)PH%9uB4_aw*Xh zDZOQ+rp7oTe<|^(jX0i*fD_eyPf3X6?j5`@a~ACK1?93*tXw#xG-Feff#C$*o^m%F zBU`tJF%z>Mg&0`o(X-musaMq9jSR4!aau~;Qpfkv1v+ge1Vd>SNqSPa$Y0jv?zykq zg=vD!zQ9701!^Q#MVuR-!ZIi9liM{*=3fTERz63!k>PGrh*8$mg=j;pk~3`re-TNx zOf!y%qJ5H3U+17{V>m!UT@WmdJhs*X_<$|jz)TTHq}z%`?4Pc}$ZCHp*kwUJA&R_i1A2Y2UDQmmn6`UU=)z8NI0XEBfjr4UdI1&qKp>~Rkw`i-h)vc z3_Ih4Q4>9djkqe0`(J1>lIBfut;iJI>Af8+j?o7nCA_v(bZk-c^SU zdbro`O82|`Va-njBe;={hKI*@;gazf$m^TI18b}~xmbJxS=?$R+)d%}(*5vsN0f9f z1w)1&TEi|FOXwQfG1Xa7l%}O7EIZW%u~vqxk5L$Y`=|8HFPGZh<FX5sbgoThFFa9DIDlW*WZsN#MAGI9BD{^G4-in>Be{a(E)U*~tW+OKKPFlrI_0?LGzqTH!Qr=<|c z{$ArHsy6(7y@&V#B7R?ezTNdukMw%8b=fBu&P^3s!!xxs(@+Q^yX;02n*C-6LGz!# z3AWLxifi${bXD96@Tuo<$!)9Kcy1F#OI~0%tNH$-`TlvX+HmW-{{%v3a8uv1SVjJV zsGnT-wsC<5*%4gPT}_sbIpjXgG@Z}oJ`x>vI^ce6Y)i1M0T!vvf z0JPUZ4Pd6ez@OU5J$m7^W6)Q{YGBW7;qcuc$UccaHv#$nhd=ZHvgyHYP{DME#Hg^I zg_Q`Q8w8s!+TCBwb!(p&=MY3uS6RS~v=FAo{DsmSj zsHAkE6b4Rba`vd{Os^CMN_j!bZ_A42*2>M48_;*hE z8cb6Ezx614_X2X#M3IjD7hB}%*q}6cbql8T$eQH&OzZ+A#YZ84a#8tMvMkI~jFX!e zgo7$_eP!DCGl}sVwuOGVrAyjdFNmpUKRejCi|2 zizZUxBw6U+7RLUOg9`zsK5k=a43Yjs2B5g86$C6Jp}ZMIyeIeAu|6)v!kjQL&YW!d z$38c|IT&pB?^#;f^xNBcC7O{Uu(VlU@;i&e{t~`u)!UHkrPV@Vxw2L%m)44l=c%W~ z^XO@j09a76w_S9v2>pmB8Jw8;AcIz>cMxv2H(=gzm+^v9{h{cwPQFzTleV@)G^22y}?5T`C0n6g_OC|lo~^cQGzL8M@vHGK(KD1w@V2pK6oByc$^n;2{ZIh?47=zCj803>Ty^hfOOqS^~p0S@fke!nWe zMAob5_adJ-#UX|qc%$#<&Yd}R|7Xq!msZ0cKo{>H&ue?_%QyMN6j`~{Haf#al(^vUpVyJBvb6I$etBc=OPv6Z+iYW^lxkC%V~?jpMbxSY0pk1XHvxt zc(350560EMt#R*78~2ej=gvR;5L^q$2hhw}?{CM%pQEf|-X7vlYuE>rUx+uZU>vl2 z^)Ph8A1n_4kH%AaDE6$e0Ge>CQIchVZ9-U$I zqoPI&H12^GE&4fJO7yx`qH!jb>Uj$vnC8wzfAAzBArQ_BVcCCL#uZdh;jbyLI&%Q^ z%i8zCc_cI;VuaeqE;0~4pk<73~ISQmS3+}T!CY6 zZLM4>EiaH=8U`xo5-l+ z%7Gxj|k3X{$w$7rvpLuR-qf#%4V3qQ3m z_=v)w7*C-_lz2o&2A=~sae_57zU1Y^iB!y`TToGHen_SK$DC505FR7s|IUYW*%D>_ z+cH0Ico`hB{sp7ygd$&+EpfwgR3yKN)ICrD%|50_agWr}s zy5oUX4_dn!JZAJEbS!&tNDSSvtXduXwg$TMJc0=bQSD-+=jte%!CJWZ)9nAX(^OIe zSj7d8upL2R4zOXu4?BaNs$nF5nO(kdnp=$1>(`!a$>LM=m)YApkDz1*&O3=pukZp; zK}7|v6I6uUuvescDP09-=ShitdMV{@G!yz9gI*Ph13V=EZ4D@D71)Vd6oAB(qU0_j ze4H$^UskxOPgFd_KHBSN@=OgZ_5oEeU;Z%~4Q(R1+I?D$pPF-o6i==C}@ z#MWTgP@y*U)9iC}>_OQ`X?uEQ#O32|z3fK2+d+91JxuW18t0A&RkKM4da>Kv@H+Bl zHC}$}ku}_1_YtR}Bt!EnCTwK)0TwtT9INu;_GY)^SIu%Y)+2Mkw@(GNJj7?RDve_Z z9IDvRVPyHk?DpMr;yt;W$m3(|OgA67PT|WZF$2bx{%Q9A9yv~^4P%CGspw-ZX-~Tc zaMX96zt9>WqRzqMRxeizR>WEq2Z}Pde^%q&KTOF=-jC}DIx;pv(&^5?CSXLym;-oMHNX& zQF)HXvm?gm7>Z7!hX1jMhA;c(+yOZ?2VZ^Jn5xbn2t71K#pp9>Nd#vfx^U)`=T2QX zi&%nA5Ry;5rg)xC3~IyPmdX#8vV5xq-LQ z|Mi<(a;#tNcD^VV_Sa3O@>SlU&o#RB{uiG^TKbjm-o%;3`ldLKc^%7M^l(NMO|8yp4+d2dtufC&!(+0K0NR=_7>4X3`PuE``wRVMHeL-N@zYW z7@EG#^8eN`zFagjz)GymoiPrpL^m%@8%dCZ^h7k`qc0h%v2% zP<$g6D*;V@|1Z6v8DMPFd87C_uAkq88xi?1;$Na2FeynqpqzR6Joj_R>F8_>Hjn2{ zp3D^jvb`hsDP)Y|&QheFQpP@~^%50xS#|PAs)G$z=v*sFV4a2qPYiiuI$dz#EB)LZ zQc}ykz&EjCI~?o#Z8~OLqzcxk;?-_#;mB9vm?CVV;Wk|U2JEz#_zQ)eGK&nyzl0!006{_e*Li$D)U$6$4&)AxOWF+yR3r zKA{qc5$sjj7n zA~@7urdP)Wp&gfG0HTo*O|iE%5lYT+!p46xN#m$_u>MS}p_SBKEBFM}#_VaUp+&wi zODXnFpVwE-Y1pw$K*_drw=sN+*#WIWlvDA$WZuMVNKK0V4K@i`pi*59wx{4Z+$--# z^IHp#p{k>57*6SEy5(hQYYGZNSJwJ6@By23#DYqw4d; zh2@3PLV01uCL-bjQp&57fW$}VgN|e9NXj2xT&bp55=W8|OC@fm*UXrWjTEc9fSK=x zTs0bK{T3HR;Ga~EV+h%{k4eo#R$w5GN$;p!P+uws6eYW2b;8Pupg;mqFmU6UJtG{? z6NTLMmB08xHl{-4phK%~Yzl2oKv9zGVRs4V32y(TM7V0W_n@=gaR1W}Kltcp9y%Y# z`oja#nI&S>9jJFMsuI483@mCoq$O@n6(G=}C9W5dn&4wbt0?a>K6jIVQ4PxI6!k60 zqqCPQR(;^?nFsHOr|QC|3D}!;e;dcJ!t~5ily;AxsTgjdDfshU z$p2^qx$vAbW3sY^$mTh26OqI-#eC!8)-D@Hcqpq7`rv6%q0bGxjhI)oRLS{9u-Otm4_TB@ zC6xBd+JnfhB6F9_kTbF}9`mGrZjt6hIpwl~1N$@v8XWW{3vZJNMLGxzVUwkk=MR<8 z;Y-k;DG26ezj^*w=q4bPA02kYwO$`5n>In{VdPdv9Kc0+b(|C8G#@&mgxCQ&1jKxh zLPWVRLWp8Ei@E!LLR4hXkl+#N0aSZJR7JpCqsCcwlI4HN&E9W2lh218NlPE5@|K2rF9(|LQ4Gk^bDok<`toNBS=b&+HpWz_YD3 zgjPt3e?$G7J5PoUh62v#2vwpEQNL8(j>Dm3Jc>BYC!kc-4|R5XZ2M4(2X^ z*yN%k6PR`(dnQEOUmRl-V_S7~Q)e|i`W6XPy@-wOHl=Tm~i=XX$ ziYOs%kSR*=9ktnmF5@s@0(l;eg$OQ$t2RmvfltDu02)hvkctlaT4bw=x~^a>RH2tn z<`N^mueI?LL%+9^1j?RbMnW5hnnzSz5@6kDL!$);nasqMqX^PXq%v%xNxus|kD!Z~ zsM$^m8X-Fqc&OQ2LKTlI)0)8K48|VQMI35Qvx*r-jG;ENERG_^XrgtOKr|U|RR^)C z3ED}-ASoPLQUYdz);N6Zw;Ln_gNn+wjFD|^yu@^%@WOHi+KRAM*(5b|398Zs#RsXs zZLMM~2+hW0sYq&Cv-JcDcy-}lyu{iAxs^U1KL+nkJt6{ydHJ0a&i9TneXV{gIq1WO~Gxg z*tDzh3`L|FYpBG^X)gVQkaS!#5tGJLWZnpnV1%N7;G_;kn=R&pAFu^p6N}bR?Lx$1@g2wZLu>6p;PxKx81^W{9){wwTa62zV1E~k^OW-Enfn_M+QDp01N%Ybj!MerL9jDa44b5*YC!omvqJix`8T6G zVrXBd5g}EWasw?fm+6Z`v=P1@#zwFmM*j}0%KR(bXdb9Tc9oD(l3pb;HF-V!2qhq& zpT}#W6TGhCq%o>6;Sb`UAWZ5ckBsZBK4grPcOa#wRAbQPN%@O8E`A(aI2KK~(DI1_ z1~l4Tf;me%q}?PTT{MKO1ej&wtdQ*aH%7PbDHiN>Gp6gK0@8$OxE#wF)2^OEZ32D)1DCGGnx3;9+?oo`q@7m zEu>Lvl@9>$nUAU$;huC$;Z#h}ptd7aHS+-@g01&pED|8*FPRoXN*g2zS~J;F5}(XIl>P}a z6eONmXTk$>xEM=Nh$b`(a1_xeRTE7X@tj2zNw*l3_z*5O4nt!QOp4(;e($ceu&=lb z{&ZVm3^BG>+^F^g>1p?rE*dX7Q`7Fv&khk63KH+l2?iW!bUn&|%$AnibP7xNmxoe7 z`rjMfokc(j^n~T(IA0zj!hBovK_%}bb^_Y`{)hkLC~<~b>)fqaiD8+PEXHX ztsf`h*tSjFIlY7r57AC|D`ASkMi}|Y`+)JNw}I9PpVA7H)XpOfp;w?=n9^+gk4aj4 z=DBSDi*zEbHju3&lfi9rNtNg3XNQPb0(ovu&>$5rhExm;rV&bfvl$_i&OdkX6#>1{ z+igNg=PTBShlo@RzG6+$AeNVsh(+NsN-lRHyA>(BqUIH4iz5_8`%`^jgn{U}DG5d8 z4~Rpu%ls#BN2L&R>O(0fDGt_Yh#_E^?t(u(V+2(-uzMxsdjHv|oT~7NqraT)hrA(; z9h)pC>f#U)=;)(?J zo;!ykTh$9^acA2F+zU8=+>X=k7o9xugAR$=?|9p&GBl89ZV*NgBx6%cy2MQA;tq<>3aM+4Dm3*=>bN>vHa6QD`}0FYLGK!3E{Z3EkgmoMQVeEeDuk#) zKq@>DA+T)Sh*V2afs+))MBr85{7S47ls0N0Jpc0a zUti@%0Xiz+N7tOm-tdn&ogW5FeW{4w$k5vbsNWO4F}_Zera2gi(sEV;a8X`bpF5k!r1e?1i8Ws{`l7quE2ZI?-yW@x zv(H3;ijf*pjwkNsFzvLv5_g)3ICHCg#=X_dPmR51KHi(n#(R^g-QI2HSoU_KH;Mc0 z2yd+4_+5uH-%=Rq*t#vZ(w+H{j}Or%GMxF5X&O7{2fvWGbEL9ONHzA0e9EPTI!J6a znrXf14xG+Dy@`X22>0Q{H8;T}XCy9i)S)~M?aBIqJzP)UqH4!<>mUw|_v<)ePUpI* z#5|oDr=kjZv9YL#09PcgqZG^rzM-}?x{GR~(`vTxYd|uHz80U+**Mh6!Hs&NM-?Ow-Z+C}{{6@FCf&O97>gyJk$ZxU4SGl)$7BQBX%%XG(-k}~;J*6;-%EqEb z0pJuRn1NaLRB>_AgPZBBtfmhQzSkmhaq9EwF<^JN)XA9=tBSl ztl*6_^lTsk4vji$KA^3?eYbUKxqKR)bI6$^;{Q|C$Yht?b~j>|VzYXL0}EXzt; zBZND*n~U@BMthnlptlbQ;(Q<`1$_c?VigE2EEUJ%i3rD4H@;I^xnyz8QQKf_tx2 zpxd;-GpcqEs!jk3fOv0ZnGBip^rUFx(%}CHTyKKC6^g#>~L-ZV}ijZ82z6yd%$QpPq&V?1u{kTR4(k#@e)4D#L^nR z9Z`9k>0%UlQF~{Zmzhzw*e>_|AK%?uY!u*=`MD+XM&7g`Aw%Q8>&_{fr?zNZ0pk_LPVCE z+d_arL(j(05X>kO(~5-XZW&11CSGr%7(%t?37p_x%t5uQ8-&HCBWdCN3db`HZzxUa5?2 zuhpQUOhVawY>tmy&wY-MiOXi>H|XPV+*2?(+1@i~R18h-g=P;@p2vQS3Q&nFJmx+p zgXWLTu}WY(0PFYq_zk%JEdOUfyr67k1*4$&z?!xq>1vCZvGh5kC?9;|9iE}IIsdFN z0U5buO~v?VlBp;(8r{r&E`Xd(W@sR@pn!b)pNy7M6%cq{8n`w^WHE{2lBCPoJ9vT) z4#ZBTbD3kSBI+ZdihL(fMPl)2?&u$i+0n5d%_qwet({1ZjoH$4(qtAcmIul3@;oK4 zVxT%os23+aY*%_+S-sQ}Q>gMySb_US_+xb3Nji>ZVH^DRuf?YHg|t&~^OV-o?M)Du z(wF-A5!nJL7h!4mHV%yq@B>Y;0j$P3q8lhkT+s34oZ3!7W--)o+-6$K$qaZlHT!%K zDpivw2_c=dTPWGl>Vsn8ipD6pZU-_)$P#F5^6FGwY=r+{0Vu9Z?X&mM{6wTIh?@Z6 z%Vl?@NC^`cmx+0DeJkr5zMEBT8OU5JFq=o|*KUsr5DoY;x07neuy<5I33FH_jgfa8 zSGS34UR768#3~CrBqZUioSzHb`x^LDMPu^Watq@ES(2F%Tm)D4nq4R$mEIZ}ZJs8o zSiwS$F7J%Juog3>Wf8pv(dys04d{)|=bZ>D!evRMM z;xlh9&t5rpf43N$5Eq)4^ndgeBQtfn|5`R)D z*ec=qr1H20%Q7RBjNIvdeDDte8(-YMaLON)!kX2H~O7p!#TBSsqpTywdz;$0PpM#d4u zOk)QzT}gQev*I3F6yQb>mTaUeJ=9gCuH>OlBn@8y;prPh9__SSmsDhS@#9jy;^tZb z7)gMOi;JW+E=pg;#d`#-+Z;(Iam-NWz-n?0Tu+Ay%4n;I5ysJ!r8g>qc6c>->jcq7 zUftTT)s_j;gk4F;ROr+!#|2t5MV9%>D(({WU^X!}9Uf<^G#2y})cXoS5xj`Npkk{E zHCSm`e~ie$+K&rX-7%QQ;rg@$31x~4@A{|cvKG0Jw1DJgH#aYS9z*QD?hSDjPC$Rg z;KvM$LL{Ke8|2egPY7^U>RDC`n8MNBEw9yq_Mm73`$&pcLD^tPDxw==B(kiJjOuJ#_~qF(La&B{=zzuj0y$Cd@iW%6@m)!v)niw1Z2?=nB;hlI*y2jNs3m zdgLq^W?fzfkIw2l^)|EsbV4jyp7qgv;7jIzvRh@yic0lL!g4l}7?w-eV=j;Bg5bi; zMc1s4X=f+gGtJ-_5sH}^-{-O0z(J8;)|@|~Kjmy+!QBD_Ovqa?M88)L55ax9Mv;>} zp*u(%=#JcJswpD{qClt|vN`P3#VTs0gVbw2RZJ(vfe|G}1yRrfWTQ&%?w7?hzN znaYFcBxEE&fH(Z6hkNcYn$kg8lo6JI;sGvJgbb&v@aE@)q@&EF{x-a2{>cDXEtW9f zwht99o~CUvM(ZMqCYqcwDlbg2qr@yg3y`z5)f#{bNjwOk;{}R=9w|&{bdW^|C*ul} zXAQxjg^9uM&B^T%zyI=|{=wKNX~VB0H_@+B_6shn2~#Z??{#Ag zXgHmEK9y|p+DYs_>$igIe=`vs2FL&KX~FRU5jIf*;*ES)Q!|&UAKQB91={6Ybk#(d zN2Y9ovU6&fT(l|eRdWF2ZWZKYsXeZ_hu`+=0|>w;C^yskPF**0T&Hab+fKT>b2**4 z75kO4`@{v+1TmHIRqU5lXsy8!-p2G{?Nxf!m+yLJbV@tBv_?d(G5v!|{I}qh@T-&^ zX%HCkW<1`oFBjT_{*L5M8;yx{WB>iYj|BT~tc8<>f2BeA6y=ydfGbGFk!7{&q%lG9 z&};>gkXK!4FzgM}Pc1|JnDL<|mt$Jio;x6ozBQYw-% zqU>MnTs={8o57R*SV|{Sj}!YI20UMN&ha&`1vdoJAB$lswa39dY&6^AIO9i0l0Cd0gFS-<{Fyb)0%97n zxEpK*B^)V%GZboqd|gl(%i?+$Q?MCMDg=B;gH(C)=*j4plM4DDG29^7GrA|-YHC#I zC+D;A>Z8)~fs0j?o@~{L#Rz#Xb`WhuxMLeQkOGIO@-mTd#p{st#>ry3?@ajPPtM(c z--YVghc28s_t2>atM{X57A!(&1K7Pv5#V0ze)_qe* zCUkwj!^wegib-PvYz2ogzzAt|8aqh*y&cOl?9grA^Q4Xhgi?i1TX|DS)t!7Pf`yP- z{3ils&md}*coay+^y|IWHtrv%1Nd_b z$Ia-lmf!yb%Y4zF(A7x>#%zCA+Yncj4jtAHFAsr4aY`K!^29_fj~g4^6Fy z2Q_~{$s6zw^tvc$3WCIawvr+B_2SSNIYF!ekIJDTk#ERzvDk)VkM1Sw4-i|EJqYg- zb%8}F%)Z^YYM;&O z3o!!e)(rPb0zULwY~`wu>SRm7)`nPITL{KguFBHO(UgOCW3zv(sD^E|D+67+XGlz&W zH2(8H@t|O$ka3z1!zhuSS3~{^Hmp3|Cxs=hGI8Aj5$#tGA!?Sg+O&kH%WzE^30}bM z6?cJXkf0X&GI(Kq$p#1^wA)b?l-Z$x?+wZh@EUF>@yV(C;g@sAgLuLmD%K!QuML{Vj7Y?ZUZ3x)N zfRy4Z58#N|Qay6^%5xqjJ#@{sOAyCr+4b!j-~g3gsS3 zu}I3@LKDvPCFeCtZHO}>*37kIOd%kY`x(K2;ae9DuwWZ$)t9v@;3q8&G}7@nxu9}{ z371X#xip}AMZLo3Y}z?-`tQk{aG|IL2A)9lVLp*Vd_nOCw1l`oK`j(@&ox`U{s8+1 ztO#L2taR@Rf^#G{wy+7v#VNEw5We9V)ZQds6x#DbRSH~k6L>xE&g{k%7?Bo+h4Xmy zkSkwdM+(YEdfmF;hquu3@aA*pL=q|ri=iSgf~3mzOBn4B>+}gWRzCMAFvOt+?3Xr5 z*Yt(Ic(_fG3CQ^+($L8YHkkrjs-_|iW(ubt^=eCo{(N}(!iIi?+Vy6^idgi>i&wzK*2rM~ir^5vbLuitqmTY;RyrNb}U?P7R-D+ zC$@R6FrKMR=7KgL(_so@5iF`sNVhZ|Pa*66%RhHKerD2rP_614iJ(+%BF}kaNP*i> z)sR@{x~q#>aw@>o2Z6?9Wvb~XrDSIM@c(D;UBG0!uJS;xZ1@t9VL}K5_$D*u7NV-9 zd#fd3gCo1`k>zV!*p|(e6vuOsOV!nEyk8j`@Jq5J z>){tRWWsaE5KovuHSv&S=3^ci_!5R81K&(${6W_hh0p3bXYJQI z|6Y5owbx#o<1wR`LxoKBzJ%!?KPhnlktD#w;sqT523oVZ>X+fcXtdWJfEX$X zUOm{%W}T$gu!K{C;u~CDU5+cxe)xORYPY}}jUjZLRk{VE#I%Ngzap2w!5zXSp73IPTy#(d`5S zW=I7fD5PZ+Jn28MsYb!zk0K(+P*GxqguIm$tO-9Q0tjHS(v3UxqJx-7cUPxJ4B7GY znqJXeG~Ta3Z&+a?Q#@XcQQ~a*RePAO;W|KNZD)uYKW#6??x$90dwD4q()V2#--~s+ zF%Koh8G#V1(YW+{p(R4=X9BdkVHM!DgqjiiNsm}pmBQ?85zIO|CB59UB@nO)7?X8G*)_~&ExF-8PheEj;Fl*5`krUZGe{8XbXT-u_S{?-C`GOLE&i_!BeaV zJa~v;N7U13D26MfkAH;VeY0cLT500Q(aLvzXA=jFSf@8$vdg(@e&Dmyl~TQF+~3~G z$e{`amIzkjbFx|!52pY|1(Xb%PxxuXRVbYNzY&};4b*aSJ0MixJQmAAGTff*AXLhO z#p+X7|FF+PTYG>`j*b?z^~McmtA#_4hj3)@Z;Iz~FAxKT7Q>|#6{=pKD!+Krig@bA z#&r$ymBd>0(bw`9Tp_f8D%8R&GFQ&C+Rlsq#JA5-_UKw@M45*RXt}ayiYyUyLj}(C zuK>J-v{_}(RO11BaN->i1RJu}ZqiNn$2h~Vi7kAb>&GcU!87tw;O~tK9h|gA%qaj) zuRFv2T^E>x(*QC9DBj<}6lgP*25`jVunCfpgi-p34$@X?*rW^CV~UHp*FkwkE$VRF zZMIU^?Vvh-%G1$~D(p_AI@T`LXL8E9Qm?2n7+P65yd$XxT)ypkWjFE3w*C1Dj&RF+Ven z<6I3w+~<~DSzdc>8)F7k>wB59W_1d6}-tB8JyF!D@bq|sms z;1MTeWIXPrEmfdEaW(=9A`v{;eL?8JvNH(TLh?{DCUrWBQs8j-)%cPRKIj;+qFbp; zwmkXf8EZBC{C!GF6(Xj5t+r*B2sPpIYdctgoMPhaT5T&*2>S5|f-G4}EF^D}DbvXN zD)A5n{Hln>SJ7p4*04%a5?N`@Dub8JQhMfZ&ajj=Mxz0|wjsdEEhSTAiSQL#Kc;^L z@G7KbbSbyEsYZe8?g+RHRn7~HB^L)n z{dsAfYi19C@la8JLTT*1RB&fmDpih3TMulm@JWsU&GCW*g;X7@jq7m{rSt>aNOtt@ z$R57SWmi0Z<$s+qkI4+{AOd^Xn`a*TQcF9JeHSau2#t6_?umbQTRE(n&dg?(Rgs;e~Z8|U&4iwIRhHS=mY>= zu4>X1>(d25BlaOC9s9blyge$3T?zYVaLbIXVBP*5{l?RG$d(#OXi11U+PD|{ z=Y}2~U4iI#HJXuPAzLv*ola4iB7A3hrhvcbLX|;u6>j^blUk$wiMu5TuJEy{R8~bk zoR?sr&6}I6XU)obv2cVfw~Bq_#02O*}l;&*&%4 zT7s(iohwbKJO;K8-aG0KTX=S|f#;+P@q3uM!E(fhj4#i2;6FbzBOIC-KThaQhWu(& z9u6IrJSLD;VbJ0D6=r{fK7I_ap3fB#D+LY>S-W5y7POZKvIl=xou_d}wFAvOMi2n- zgYbTSWIVzpOMBhP&U9;Sv^QDX8SN$;`}2b9B-mzjBDG2(FU9tI7~!~>W8?o!dtNT zR+J(|Xm%;qgg)XJ;sJMX)qmpD9{0M%tx+T*C2@nA-5sV~&f=fBONGvG5G^SAzm!x{ z($aJ%h?!`rl9XjLxqlx4`Xl_AuX(j$4Q})Y=C~x_&9={5dVIo!_sDD!-ucQLTkP(` zoxPDDf_pvIn%c2OqF(H=zsl$rXdYIlJ1> z$ITM8fZ6!OG*boGnvCvEN5j^|70|BSOqrt)dZ#8ip5^D7Txqlbu4;42{^{4Kqmmm5 z5TA&I2=G%tb3Cx~am^Nm8@cP1wtzJOVaD6Rh(MyF!3uaqm|ExbCMI6<&`!QfB{RJ) zvGZr&?;{~#j_b8B08Js)@qo?aA!`(Hww=HUNe&I2J8k0X1tiJ~ft)}8eI-b`TNL6a zibjB&0-EE2nvZL?D9m_aqX`a;m=}$(`HQbpVuYNA5U)6^-G#asfToaYX<#E~03(Ox zMPEycESW0h*p_)bWRC*RyPUuYNrJR(yg?;>X@jiQ^qhuuLdrk64VUIX!F#{#Jw9?K zmbN2+M>*;7!N?~~@(i8d!~^Bv#Fu%b$laEjP>wdSH3oo~v|$}h0lUv22;Q7lQ@@fF zbzB%`qfmuqGdbbVlj2sk2Hown{f4{V@|Mn-({DI)`i?h=MJWrQwM+5K-x?EXlJztx zawzMrE-n1MU%vST?f_eI<`c;Ud|TcA08#Pb@vB+H#|O{PM46=#{Z;tB@^Pc2aZHE2 z&!9Sd8O3!-lFbf{9w}sJXp!2Dv3p{4_fvD#T*OmQXLbu`UN@QwUiDG9 z`QFrI;=cE9d_~0u1LRgLa|Oc*O$NsBXI)5j{$qMDA6)gALvu-iatKOdB~m~nK{LE^ z7W186`T&HydICqZ>_r0J?o>^~+-!t%-Re3c+RQ}e)ZCR@>^tA5Gt{)vX;Mc94?vmHamUts|N&hwU>G=5y5=E6JZR$L6NgWNB__jy1asd0%K&0Y!TF^ zM1I{l2_qFH(xme4Sm7N=sxrc*5l=U;+E%{A$|(Cuq4hj>B`lVnMC2znYql>q_9%=~5?hyTOd2Oxl<(roi(zy7haugnf97er!mRE)Vo z|7lCC&q^C{5;q!OGb*zO?+CA^aa{!!rh7nb+t_jwI|(3{t_0L^Ys`|sn4-hEsMG%C zs-^tfmW(?MDG?CmdS~Cd%FgQY{%-il0QnwKzWBxL$k5<#9qkV`dAAhTj?s;aywluh zUc9L5edr#-L+P`HS&olP`B6n2PepNHxvx+5mFOR?K&HqfD z*K0dWQnD+rRB0Do$Uj(E_KHZNoeb|VNn-owb7Yv8xKB6xozn`vSf;SK~0$OP3i^A zu;oZ?``+*Pf3zBGFBa_=R6x9|M2cE+jmX~q7=ei*4)}Bx zUM{@8d!5c4_s_Lb7v}EzL+y}sbI+Xsa~4GiI)CKfE1mf=S5UW`e71zA9(D&W{b7f@ zk^-&aXcOmlECmwpP?BYAyc-b84-V}_wi2x6Sf}_(7I^GK0}rP$cDv&X9b5t__Bo+?|p z7afOJ{ER^iudYUsxcWfiEB8lhR}`~AqJDA56`>3VG-_Pxb-`=`eZd>5*5<6oN%-% zJA2?t{3Ky{uez&>7FMPzI!nT?)P>jNYs!5dVXL8%mE|&%=VB! z_=@*9%sWM>ys$Ah0z(4E1}VcF21J`jup5-HhZhmrH32#(6li~ZBQ-A56+QO?w6s&N zffhg6ALBCF9T*HqN6MNp-_3>KOzf$v`!e;WPK&LClMT7W%ieBe_R*Y25k2D5;52o( z@g2l23=*7)#8ucB&2HD-=jqz90U-Ii7VUf_XxkhPlyjxKfqWI~WS~*bPyPiyXbCz|E!kAZx;t z3v|N}9$1KMd60cVA2Q11=J`<;ue~;gN#rrfC(n5`-*lh;x=80Z9t?UF4kk{1``@%J4Krf zn0BK*;7YdaySzQlWjvOAov?7pLZ^FR_)Id36g?|!Bp7A@-GYL|FX+bEyMyi#S5XgH z*x^SHQNhyD(1rZdbn=0Z0#&ouJCHK<_!lVZ6g-+QWK7ecEal500UnimB{W*|L))$iVOf#3 zUs;FrEsMa-y1|^_k;HW*kw{t5!rO`_X4gelf=INHrX#yDRR2kxj?dX!rztRDY|$De7A=(YLFd%Y#&GDpAy+ zjn%~!u~fVLr<$inEqt8`^}BRvLBn%4>YFzoj2a9A0d#(o@RdTME56_H<@fzQ zS{C(i2R7+>hq#=NAuMn z2aH3O`6YhpZz>K+R9-HT=616Za>?qtHbA}A49j|tv9&X>O7W6_O4xIJ_$(PSlDLH( zsY?g_C+9WPoo_O1EWlv}`s0nr=L)!}p!x5e@>xJzjL~bY?m)Y|9K}x7WNMu>s5p~f zi}f&BkNMVZ;|BxSErdy(fHi7>%*jFp(`}CPMxIbsH5lgXYm$RD4?QHQxMVf;iMZr9 zX*f`^TeG6{x2W^GIR@hlWe!P+RY@CM*l6N>r z#z~8?NuFdlWlzDocg;d#thUXsfBsDc%4&d^0-ECulaFiNUV+13xTFbSyJO`70Al)} zCiK#2VQHkYXE>bdrs|SFzn{)(DL~UK;^PggXQH1<;p@$L;iEsQ1sX%mTyfaE^UPhR zu_v*ZF;Sb)Ie3>|v8>w$QM$4k^PXyenAzmV8#B+wd8k1183&p;DczgHTLU(&1^F9Y z_^sEE#NQYdV)2T-IIGygVi>(NUG@7cZYIUMR+squ(ofCNXo&0Toju+F|H6z<>5+c$ zm2YuSpHXNY%(DZU4^KNRNjw0K3AcRgF(!uOzo6+u;+D(dl2`t(ElR$33a_AS8mh2t zqBpMd4pFkOsY)|9+kT&h&Fhr&OZbPrA2xw|X1|(xBv!k<)FVhxVSMCarzHynwr}$wJk-8_N zux9-&O`a2SlSmPHkokrdG7|j~ph@=1j?Gumyz|?H3I~?u)j4Q(bKLYQ*u`{vj^_Bs z3pEeibmG|@M*__>$UE6ovb&Fd%0?xOtCtElg}7-^s8Y#<*j1CieO-pfzQHVSR4Lc& zAlaJG1wRO(qSQmdz8%XJ1gF^1T2aa8D!inlty|9M#d0+B(lsRa7R{>4NK@m)~_Gb z2!0)IbERw_y)J9(-}F=@-Nt@@fFNKy0rH-M8MMdSs(L!cK5t5?`$A%b+I*s$AWB>V zvEot30M)ao1HfOR>`xrUI#3rN|72U;5?kJ6X#7|0=WFF7kd_7Oc=4^G^hH~eEo zvbfF4XuoV}eWAcyixc~$Q!T{);T(lxHfo*rDX#!>UV#53wSkWv%uu#=l|*ecdQUH zIdXE67K|gmzz8=`jT5x%1gQ3nkW+_`ehNeFPp_!J{e?3HyWMpmFvmbyN|Eqt=mVi< z(}6#mu7M7JuQ&Oz9!&PMtsPLik3<-JT+{kjAn-D01ru-*4DFm7j}XSir^_>29!P6$ zTVxq+>|5C83^rmXf)@9Od~;peLY5i%i?0gEUV!Q^lbWxbySB`KJ%>w?-&nN_7+oS} zw_q`JZTN^u31f)yaa}pCsKwt07c*L$*t%PgL3u^FNAOdymcxs|kzHQFbMQ(XhPI!_ z&^Z?e`=M#pn#B?te8Gf^;TurSBs($XKskMtG49pvk0~b;r)Wyf@8P~)ObI(io-%fr{C3j}&z!C1 zS(CQN25_QbJ?OZe!_>Q(|8V!NMag<*I$Bs!9p>xqA`cSAectCF3UB=ylw>d6Vo*xChrq7N9Flnq*l6@;MOMOvHrYCdjuNlR_(qR@yE)ZH`L$9D*Dul^KX8;rKR347~WH9_t0jEfTv4770F<8O%8mc#vWl z$rnmd84jpIc^1?p+XN&RDQ7@*fS%ssT;`vQ#ce>~XXXG0e2@L1)nS?87u6^^OhoEX z1}Pp8GtBK` zfb}f5_DL_+gI`vLNTqZ%42c*zo17n1Wyu4=B6!Rhx_ z@H5ag>4XSfn4CtH%|L1NstPh=;KF)23XIQ>L88wAifBg)HgJE4R1j{S7-r~0DH%a& zZL}bmV4e==v|~<()4JHSk~u}9jZ&X}f~j0Id6}bzfo~7r5Yq9eb49^?P|^E(hN;JTj^z7e5U#2Z z&X&~V-Fe?Tb~MYfE{I7&b666|hn^kf-7PD$G+rI)Z^WxZLrmA`e~Y|16^pVL2k;5z zQb%)8IdES3Yh)5ISF zymy6FDpMJ)DQ2k#59srv5_wX#lx95y0$0}&C_8XMNKLX}X%&lF8T7F@13KDi$j_{< zWo7`~cH64rRMGV>*f3leoJl8@ADt!kJa^pcp5d)-7Ekrchn5lRR~5 zf(cIvWE=VN9z%D)xucel4@q$cmS)&B)?Vy)>_WayZXm)US5a z=Ky-{ha}cH9Ek01ftMscwS)ftKE!3dNg^RI3&de5bi3#Y-LblW`44`5R!adwXAvJy zsAdlQpba~B?2^t)(26Xyl=e~n!g42nAcqy-{%90{RX!ub zx%_Aofp`X6^YC-4u3(n;eeW~Mz@y2@(dr$_%(fJavtpSm5XBujB_Gja_29&g18YfvIBLlNVRU58gq>uZ5J;_|z!-<4j_g=B4GoPwJ0 zDW3-u%I{9$jZU?xN@vi_*^i|H>+`V72|vx`JvR8%J5Y8$Zjx3=8$o56Mx&8 z#B-7o(YJz9p_`qQ$vJK2+NQwI{ySx=;%e?KyY(MTfC8E;@GqE9V)klwD)3+R*BtmY zMJwD@b>S2;Biv*#Q$hSeYATrLrV4PPd*vwQ9YxnjV+|90!*@1Nhz)i}Fei5#xD$;I z?UQ>+a?P9T!q9V?vuTg&$&B7EpP<2doAxC89o0&0N_?Y?)lyR5X;mfPo0S@A&$(C0 zYv;VWM4Q>Q_OoBASe|MB;ZN(`IR!&L!z*D(fdrUMenl9R34>?jJXT`i#1{Y`afiie z7Z(t-W(GPy%j|?4;kn5!$|lEYtA)KEvo(MZv z(J9|UHI>mj{PL^+^3LR^9#(t7q)fR`m|*@E5iQNEl}ptkJFyWBmWNp6v^Z2nykI{T zu+LA;>2CuL-cjusY$8|ye%|ZAMUTTi{6%yHDs9(_mPolzB@~GF910 zW=$~~nz!Md%|&xCtFErgA_nJRwo*A8YV9EOQSToMGeQ!~QNu70+b+f1l+LZ#WisD5 zJ{K(W?j}^^uwnlK&3PGO&0{dpOCP(Yk()@?S@jMKPO)w$!ya8&wyBFT?7+YDu?0Lz!01W#|kos~L!@Ct2CSCS-3XTOkqBKZ?t}?e;rQpSk^( zw{-4!+g)dFJx!PPQbTZZt%vVlfBKF){afealA7$APi@D01&5bMqSf~)_}_QaxwFDL zji#U`X8>MA2k)zrt_H)G+Cmj7GwPyx zn{T+~Eq72BOv52vl|Y)$J=>{(Haz}0$pp=9ffD=oRCnlg5#JLhUF9vcC5=a%wfzm?S7)&LM$My#UicU$`ze7wg03Hrq z*twW1oU@F8;aWjq0+iBkc~UWViQ_IJFxv<#)4!Q)D^Z)%+HRfp9PQ3_=&MdI(S2r9$U! zU5d@ukM+(BEm4y31?MDi>w1yGUa`y-700VMpDp37*K?--Eime}`GRjzS=X^kI1n6H z%CMetg- zV}0y06`_A-(XXUIGrdwrU^MQx zR%fUr{nO8wP}cE?@>#6b_}-gdqtoGZQ2dW~7kLqlP9}@loI8lmzuvQYW{PMysARm} z&@y8bo)PZjJ~ze%&;`EA>cy@|dN1ieU(R7K;-~+glknw5aFtZuB4yR>b12*QGa|`XPPcVa3Kn)oK3DUzt;WPEC;& zcB_lcUkUOp{^EXi9lYeFZhBQLywE(eGmO@y7l(gUd2;4(aaQyPkv5YTM$Rqs!nujq z!6k}B&IPh@!FZgso&g0_`IWAPD+)t_TA&{0olSu4*W?S0D41AnfHhYRFoA=T1I#d+fL!hsfTm@ZbMMEZp-DQS4(UpQ$P(x|JEu0e_& zc%R8hh-2WSM+3dWRslJ0kGIVhl|Rk}?=lrtIBynIKx{YXK6G9Py5HT{ zAYhR5{L0^lvp9aqD^igL>r$Ft_pzzmGR$U&=ZGXHQw)ipV4tt-(ujqdnYY!#Cln8g zWWoZ~u|Sw!Q-SeHOnlWFSxkfnNmW1n4l8YY0Lc&;cB0VkfYp6ChL93i*_W8jgHd-A z$9rkV#XaWPY*i;)SiB~V21R*ZqZ^~~-iWT`YUR$0tG0urpeUTr*TSmo;n?>1 zVAL)GMbMI?u@yyM&Zuys+q-YypG=o1D<@FM=ac7Gu>YQWEkY^mcBU2E;mqS~SCJJi z(mVMi@_j|7>94EYI-%z1UtkL^?46croa+YtYemEl)}sdY-0~yFvh_eeIhU;$i4H~j zo9tw$R^he7N$lu5X6X=TP6;+8n`HK7bJYQTz1iO$j&M{&vxEaUBjt#X;}1n1Jzq}_NM%8$?W zY3VzcP;rFd+6quN=FHSwJjY-T3(dNRJyzy|F;cE)LDH8=p6b~>qV zz5VeR2NW73g!rqR{jWRy#@lWu-vhdmCeRMRZ?u7&dtK-b zK}Js~(eBGeXA(YNR8B;RGxJtgo&j}HwHY!CE)r`CW-w)4rb+@+-gzgtqfTCdv<4u9>)qayfL?Z#c;j@enTMAuW3Q|0lw&x57=B`Y!?EEO$l+0@k;n!8WJYl#kkCz02 zvRmY5CdJAM9cM={o@c;CpQ~1^AE`qpN8!L8KR0|?o(UGeSjrHL?tqyeOHLkEtf*iH zXLMIRChix&Ph!mmwZ&V{GmKzql%;|kgSoGd+%ved5hLHip_d(2xlC`&3}1@Gg1K&s zWe&BcObMiyaoy2;JsF}A_%BE{LRtuKecM~#dfT1hN+^JbY_^DWxeC!$c}Y?Uiy13= zX4NYIVW1<>d1wDcefSqu8m#8!DHXk6#uS_{L!rqU5n7CM?t%V`FZ*hhQZT0fsbmj% zb8h-g-l4&7qjOWWz(kp;SMC&I zf*)V5Du%JC%3r7yigo#$zW*=g{z!q#dG69n<8ylL96qP4)>7nnTC`5_K3!XBt|NQdcqwwYcS_Byz6&_?#s#y1hYEN=bm|zs57bDViZX@egg#Qau=LBc>uvyW5luxOv-<-4G4lz~PYMTrXPJ;$$&7 z+xuJnWV7A4Bbktn3SE@{_tzlS?8N~Ma39o zjm<<4Wl6I=XX}%Q(3(>+7YPKe>q!0kf9L!Zilvp>eC)Y{r8c9-hcci-fh*JAR1vS$ME~;l0WUJqi>U26TWjaLllb<5g|eA+fg2FpE)CXf$fy83t#4NhLOYp3 zWYscWZTTQ8?Mixs!4&XqhHg!x?^^?Nc6~VmA*|0dhs_}Bg%G2c>LhY%`C{61Y%#yB z56h0&G-zrx263jwa1{1zqvewGd>Tgcxn6S(5zhTnegoA%b#i@XPwls1(_Io(h9k#O zfuB@jtw+CFq{?y-blFF! z?jbjad2!uM-Kn?R_!y9B%T7@^49NW`|L$P07^ZICOqNl|IlH+^}a+p-l1`?!J_Uv&kyC+AFQPN|V{p)5*XYHp01DEG zDEqQFLp0E8igNj0AYD%~+@9<-Uemb29bq;F$m>Hn0>t!)UHInPlrT6Z!wiF6@2J+C*edv7 zSvvo*xQi9o&i*rIYIX?0*8#7%gTlbtK2Dr_Rt=Lec+1GJh(?tiI3-^3+Kvrjr|kB1S!%7ahEg86}hbdj9Pkk;kuU5Xdz- zV0b!ntAbXS)W!Bhb4XSuaLA#X`Wei2XI>j7%&7^`wL0SwVo`X3%}pD1=;Kzg325dg zqCe#3r(VDRSB&{Oh!$5qEe73czggD@wpDCE(dOpOqf)QXgX)r;VrrX0^7u zyEA6(1FHtG)F@ivj33U-2NIl4?Y(I3NFXu8tE6n1n}q;Ra*{>V4+z7B{Su~4^g5WB z(f||{t@Lb)w6zNq^|ffU?0xiOrB;ZX2Ey6Om3_qT_H~mVXH%K6m z^0~?tG>tAIhDQ6m%}#p6%UlPgYE*lHqm4EaXb}jh>h%W*d4)eUO>nxbJ3uz{3#m89 zY=_KU#^}^NS>byR3?RM=8No(LpQ4>eSYvt6URd4$%=l}`^-FZ*HpPH0Ko4xB{mH%r zF=aZA$VJ2voT4~q3VO;9{2ZEY+@rTpZ)QisJsdeDxgw}!z{z%`6_ZzjXyuDTRURT; z+u(u;Gj^RYlSWrUkadYdRONUMnV+2RC3_TMmA1!SgoHt-+}*F6Fh>c9Z*OW>Qvkh3AuSyRAv z2%!-oVs=Wc6*H?qWOOa(7dy_OEJFv zA?!vV4NF6#yFu$W$N5?)&e;^{2{k zqUa-K$n56<(qF)^VGIEca+EAc9$55%*M)adMNT4NB06*3Ye9HVvz){a8 z`h2k zPGDou>5Gsthl9|`R)iB;&zGB+B_!P}iKJ}92)V2mF#{BZ0fzn)x#&WP_!y{|BIf&uz0k!m=KBXvjmCW(O2Dmbxa%kB>~$wQ(?eIr=E-vfyz++0^n+}d zz(nNZXqjH|F&T>Z$H~hv#E2E^W(hOlD_#PH3A7`XQREyl-!)fT#kE3|kRpwB=uqbO zrRjCvWZ}X{yw*8}%J$hLeQeXLvI>gsa=gjy6%vLFI1-*IneyWJO z9>xbJ{+`2e5%p|9n|L4SLN@Dom}9`d0Iq`s{1n^gOVPHQ`X%9fDp$FH#F*Dk6SuOtVhbY6l2 zkoj^E?We8?`b)3*$J1|i(;BYvz|`Vw4A#pXPO*xGmS&oX>?+pQ121b#L!YYx)>v?$ zt(co?N`2+e5)v}R4eF5JGjKs*FXW~Hbs?AJBkB-3%%%aR8C(}vb`5fSEJY6KDCe!4 z((W2?9uF(I8c6dn+Q9D91zbowO44C-Vv>|xNG9#ZZCi~#j>6-GJVkzwNfVxSggb6c zD03`l?`3g_hj5`k&>!umw26F@_qER@O>9JL<5Grg+A%jNN7x62di%R(^Js9P-MEFe zC*YPso;@6JqMZt7v_afi`9Ay^d|9oT20`lt%`&@n<>TPw6O{YeztVRZfP%%^_}w7>fU)-6vja zcg&ZkxJ(;DLiHgagaLvJkmddx+=Yu+2x2~Sp4+BeH|A>vJ68?PjstEaTU(Nt4n_Be z$Yirwc~greSBXy@%wd-0Aoao|T{`xATA>4ZoOFs^|H0XHEEqh431p;yxe4?l+6yBm zf4%8+P~&2IS~Oic-IU#c(N$)Sy)1Nw#Q}XHJH1$$$p{EY7FZGxK$gf0pUAcs08{Ix zSLrrd0Sk)vyg0z{2<}IP)3iLtglwj{{UQ6cGMiPXktVSF);?82>oV^(d2=jK+R0X& zYrE+uUWn}`wQuD1Q1xC*0gqKNm-<1+O{;ALB@&ivQ)&C1U-0%S0_iugh2lgA+wXy) zI*WK|3{=TJGQ&XKNd~l0SG0>XZyju=J`-i4w@=m9QIxW!H`Y%!MgyPv)13%W;@j^X zMQihp%(7~E?`VOoqnjLrVxG)s$LjKD?tZPlbHn-2qHP99u3qd4raxcKR|W1r%DXe8 zpQ0kl>1^)G>#@S|t)9*fUunEMm>BrE0)wyDrTm;^Dj%9650Vmyg~))L70 zRygezn;*3~7x$jgtBY~jBR$7B*&B3w3A-0VjKdbUVa##zrNQ=VxTiDZb$kp(;(Ng= zS(-l^Z_*?F;HAIkARni->Eg*NNt&&9uD~-9f*LsCwR^VohF1H3~s&l|a%f z>|F3(bn8xc?sM^?!^h#gIqUvU>*%t*;x#`dtA$h*G!{$&o&23$5xQsXAkVPsen!Km z5$yHbXA)%BMVM_{*k$jN@?BHC%#Fnka^3!6Tpm2x*PHC9@IzyMSIj6&{l*yxqyuH+ z*=KaM!FaI5;NfF`4SV%iIf8cuhhE4yOOZ5D(gKsS42ML{!LdUg!U=dq4k=oIVPJD^ zLFzT?BgYNZHEi(d6Luk*lJR0j?pvXwAbO82_;pp7ffE;nu zo7eTXzXO*MAQUBqdk&Yv^!MObv#JAqThTJ~J^c@uS%XvkDF* zEvi5#B%adv>1(yfGpH=L#WA-lTBC06M6yV(*BBb%V@8I%^Wgy;EE6CPRz{842K zxj8h;SkR|=#N5|Ps;cq%v##n=Lx14qdTEXueuYbOoP24P=5L*2X*PCl(UN?~s$?mS zv&k>T(;svzah#OWfAZ2}=Ddiks4*3VE#@rO&Ss^EidwuM3GEI2-tc?e&Ub zV*w^B&|g7kh|cGnv(^q(#;IM`Ayd)vB$j@(ZNIWnxTkDjGNdo)6EHYRkKx#FH?u?}jQs%3bg=( zS5_z+1Wf=J3E?4NPW(b7&q@Nba%*=;A;~lg$#d7d_z*ZI`wCqa>?>`_77#c|?X{C= zol^^Dacw&wE~QBK@rmfprSt(oOpBev5qDDPGz-3^*&^gFNS+y!@1=larWd(314vk& zicb!|gvDItXp{4`-+JcsEq9)765I1qhhxK{#p zqovwy)60fUN9YGe<>YhA@l&viC@r^C4K|4nxWPxoha-eaIA2l=*;@KTeAph1;oXfU z{_ovkkK`TZj_#)3g=G^R9YB9t*$?U*i?0%PfqUw}I{HKd$v7jy0t()v5cz_O8w2hK zhf+~C_#I#~f+Ek+B{-@Lc0{2=xg0SQi>DI$ZWw>r@2v4LRrx3#=M$ZEG(QlghjrkF z%EX)zH$Pd~E$arQPPJuZ*k`<7D=TVL9855gl_4Ka*k^oQYTl`80{E-L*cHxbt42dO z)nz>XlOHKzMW9fZ&@GJ)y;|fFrX@37n-N!2y)u0PfD!(v+)YZ*9A_%C&5uZ-a-XCz@iC1*4pGrSYJ3U!AimnmMOMU z&t_Ab>4N1p^VW8kY#`Nkab0R0U@~q`Hp6`ocG?(6Jt8H&3X%IxRDOSV$Q(P_$h~GB z6W=N53G6l-`J_DYzz5xQLd*mvg57n?0`ru>v*;aE&|JSE~MGWwsFgVQfKF_@vT!cQBH zr6z94DxRr2w}@A6W8nq9{B(b&pLOB3`C#<0ex|hm!Bq+zPb~ZM`x*XuP#>K5utT+5 z+%wd3!`rN=sMxzYtY?c>s;s4KmtYd*5WqG{a7I9@7yPQ3tP*Vdu9j!-{vbD(_c3K! zpTIcmk@M3=N(Al*7XHy5tk{B*JRldpYX=K9Xm=Ek+-!K)vAC2NVRg;bwe`3`8_do) z$?=?zA5&JppMp~y_ctb>dT+gPh>o^^A}1aDuSq>*jM#~$=1f0D{;=LotEuYpi-?&X zrIqr+ark%&b==7b6xElyz<1MKGa3p|ID__h!tv?Y_ffd~X@|=g;hX@CBM*u;IhQ4= z?S|Q~ICY92VI{y`jlnu;jwjZ< zUn|Q&1-dso&;{~M!WUeAc`Ky7315TN)Ac>QCx?*)&e&n(wfecatJQLd1NN-@_>`ay&uvnPP@` z+#HXV_x_qx__revcEz0fn7Lfe*37g&!35 zYQXcd3-6PN$9Ca^p46ovym4Ef6m-j0&{lxH+2qF)htI}&=K*=}(swyT#%ZI_6oH45 zB;Yrkf(TJZOND_!SLdd>xOp80>eu^+j42??~#F1mBw5fX%+-efyW$a)vQufIf5a1E#fwe3zc4Tc`QQ408HD-`3YR~ zEzpN;;33sx7Z%qp@h+%O{8wlUF}UzwLthjg+uz*UL zSJXlDop$B*zxnD@b-8u`b$k-~^1&yesL;*s9%2dGbbmAFCvUM2-G1S9`v*dhHxQMw zjldG*k4DlKf8gEp7Hwc?Dg=Y>S-&A1D`?QB2e#E?P-hN6mQT`m4=3Ezd4`X?H}3e3 zw@|hNq*Lf2zk)=fPz*O+?Z$|rqzwqvq}x9?ape#0_H6J?o%oh^BWZ#SEV|@3J$r-P zcqz>t%7^+$p%vm_m-G=bx8_DhS{Gz{S5<8>0B_Yo#}~$*EBks1&wuRj zTvnheuz9sGD_Rbul86SmhG_+Nt02TR&5kxl5@N-5Rd8@ZmNZ}KgGjX9-=($Mm*o45 zx#%L3p|)MKt;f^`teZ^co@N?%fbAKyO9N?p13-ynmLV32=D8|h+5B{jc?!%C;jFl9 zL98B?h-aroSS8A)TcX$kBb!xCIpM6{IqAIEzR4wht95?1ss`(l&Z7@kZZd#y)mEV_&r}?U zWr{Y-3iKR(hm1l|^mKbK0x_R{QL7~}A<==M(@BPz-2im}zpT)4o-3a#V~n0EuXIzT zti~ROV&chbtt4I66iR&HQ zXCPp1+=r@^{jgq{a!=ywlzq*UZl*$IsY6RQCjZUSVGBt0fg-kK_VM?;e|l|Xo=#|| z+8#ehclvv2I9;lhS(>RLvzyifAhzG@@bKUpUkip+ehUWpC5o*vJh@z+4GsE9 zguF{^H(t*1-CFtLR&PQ==BrmvUVZgm7uy4qSi9VSX>l@&w1=H3%#78mua>^Lz8KQ0 zxnDf2tLYXv4w7g{drUh*PzMdV?Z<=pF9dDZ;?**e%wwMNG=`-J?S9WUYTYVC12(%l zL-aJ9e=0eBoP24fp2S;4rk)*G(X6XfP}HtC3;bN09^}^{o}0E0ky$2F3+2rIG;L!J za5o(w*1V3B^_Y|yk~nIs+aKWCz7$)R>^#-8j$E#}`N(wv|GC*$HuDxm>?M^}I@m~$pJ#vA$9`x4=NYt1gXI-xR%DhD8B-CGD-;tKYm89}#eZ6WVrjh)!%Dp7 z?Rm;G#=Yk? z#!V0QgR8!x0PUHcMPPr@1hbepO%+hVni4JmH6KsZ7FH(IBw^=kOmE^ZuIC9+I`oEf zgWRDRn%e0Y~A*j zwn-^@I$Ug=Lsbbyak=O;16|CjpkJghLKTFa#&9I6(93^3KdB1}YdV zOmY`Y&qAuBH%A{2*`OxsiD%qI4Qcdj-A&T8yKUz#W%M-DI7r=TpCu{(WkE@pAiT%t zDZK@n3T7!*lN#qJYRk^h5Wax8?oVt2p$;>By624iVosfGSSFeON_NwAVpb-_>3YDm zAi?Z9rk{}=nVy-Smv?4;`m<_Dqx_T{wi-;T7{Sq-PakoE_fu)=uc~uzWi8PM-O$ATT7kS2Hpju$N@t+~rky^#FWupGi2g#VqlW#*LnbKXzvRyx@!Pm3YS3*{@+K_=oEX^bUchvNafBLLwnPIuo$K5x z=GcYQ9ybBsF<@Wn)!|7LGn+%PLSt?;-p=v_;)JUfp#olYw{S{Eqz7)>q~SMOtcKa| z2*H8Go49$vd`bNF=Xi|bL=wbum)auo^W>+4_)6R3Za+=3LIqu9agu0r&R9RTDl-~J zlkxrMju-dI+rpEybpuHn%g*Z?H@c6-T@oxoOfnvc-8o@KAAU0#Ou7)?7t;0qYU6tS zA?!CW)sbQi@oUhlU#j*xXvp>7o(i&^$aat+i@{TQ`_J&8v>uYQTZ~%M895E1s=&uX zcTLr(62FbZM`nbJ_;r0<^q}*l5+$K7jpa{TDu=0CFC!wmnCz&@>`!FapoI2SKZy@7 zCQgQ^HHNw6pAiQ9qP^Y}L5;KV9zQhUeF2_+G^6tM;1Uc{1CTMeo$d|#P>)Zpa79)U z1D369P5$Bx#1Y>eUD zH~1@f4h*7M#79laJQHP!mo?KL^P(okJe%6a&8bb&e{$$P`WyR~A^1QHT2uWRQ&{FNuT100Mgno)qC+}mXX%>JZ5fHBQF-3&82 zOUh>SFGx{^5N|unEBk#R_X-b&3Z;*ql??(>XAbp&FR8en4tKo0(cfmjTc;zf)g)0K zxk{&HcYy}dMt}vSt7OQI8Yn)I8J|MO-*NIILnAO@rX>_!5lB7b}Sym``eJC#`D&Y)T zHj5BT%s^+VX8ka8w3SA@oXc(-X|1xEUy^Hf=59652gz`IvJ-sm+}q{+$kOvlQoxgn6p-KQ+m76~l~*n7nqeO*g{#_1f^r2! ziaA*Tx4o}mVRfTe9!Rrw$%C(7i%oQCBS1(o*-?Xvmj}WIg&DtcIPokr`rDK5j#U8j zN~;MTB1%sPBm~x=%Mxn&$T$3fvQ5b2f{bYa0`jky<;#cWi0ONQlqjSX)5R24-~2Hr zC(JwE(=F2dZIx#X&?F&m8mA5eMh2&2lSju%4x zQN|bt6;$tYP<65^RwBSGxdfrUE4%GM>`U^#PHUx!AeLqmaV*Q?=2?5{6MktM_qTUK zjVJqZS#a_!ciIXv?stLYDxhRZ_48a%eeVyr@6B%zltKYWNIG&Jrkfb&*xa4Z>BBWC zc{HQWg)Ow4AIR@Zb64t;Nw4@eF^t1BQQSlzg9@pR7M31&5`tNvK=tDeR3XVsbXl(u zR~Q&!3PV|YD~D2RYO$H6_8Tsn+vwYd$}dF0x!vvU05SR3%L0|q6=eEeAb1LC#cgB? zE1dkU!-;v<+D*DCQj;K}65)osIKv7@5k%4YO7kQZk_K`+;K>HUqz2vnR8plwOc5m# z&+KMXr_sA|s|bqZs1dL}QGd6!Hd>k?nL{O>WZk!d7=V+q~S!=?8w z8CH0J9$fWZ4xvtx8LA?vmg0rC!r0f1dJ)a*kn8ryy5ljz@^SoJ1fG|H@**Addx?KY zhJw6+L7xJ8Kahk{Ko3HWRd91E6xe)Gt-WRM^#l*Z^eb^TF;$W(- z`Zk=w9`_j82Z{D14oYF;TaIwakpS`Ax%}#5sVYFkFE*}_mW%W-wyoh2omI3IzC%&G9HQ&Y zf2wvX((V?H(RI_%xQ`Jm3#!5m3fKPv=~Y6_;_D->0)?lE!;^a}K{`nPa$(ON=Eu5Q z7*OiUIa%dGO1Xx`#Zt*Ghikkpx%7??#`Z2;Gr_V~N_jLfA>Vfm?Mjz z3i{kNIJJVLln^}Kjc$q)`J1C*6X{s?_x48EUZs2g8e99r9v|etkW5%w$=z=E;-&`# zKjXMQGO@z)Lk0^x;CtMV)(n3`Ipttf$r^j{BB7C#Q*`ojpJ;jHonL(1FMm7TGz=@t zyjvD1JrnpFsn-RPC{D;i=tERYLFOI@8G0cgv2kQ&QirIs0;dMs+wWoJwl=86x}?mz zepzB~L$@Kd5D1teqN4g^6kQroXJa%Pklj!2t^gNhgv){r zV@z1fD>tA5(NU!s3z8>uH7e}vIqc-9EPmiuW`9Edj;>shoSY$5cY#&p(o|hOEyv~@ z#B+_;C33d@Gkw`;aeD#Ksuejdko!zA*A({tzQbNIc>qGEtsGK*Eds^bq}R?zlp)m} zUXT>E0hnS0%L1Lyc5?kM5K<-7VrjVw6fX81F5KJPmbvk97TQ{_q!LMLD|T^HE9U`n z7{2lG#>a36|`eIiVRH2xEo$(Q%JQe*vZCV z@DK_lQz0!2rpH4zDA=4Q6Pn#a_L~}3wKz4ul}GsGh0-XjTgfD;!AKuvsMDtF)pH&C z($^px|Bgd>*nC}L=;FgFn#12C7&aD2qYCs#4_MC?dtH?fHp*0gR{3XbRb!p z%i-dA=tl93vfGawQ6{7#06?5%S-!a}me#97etY()r3Lb&jGRTv#}pgX*Y48+2rE$( z3C>DLtVNk5QS?rXv?9*o!w3+$)=O=XJ2a|R>yjQnc$4=>d*PuP3V<_%_NXH0>DU)g zP}`d(krHVq5G>`SM-@AtjIc$4D3UzIgKbV(!k>1Dul_!z+M->VmwhU08zn9Zgz@X}41jMz=ke4|tB&wmH$+`r{ zFaBO^L)mgEkRD}(M-?xA_t~;U0jKYs{-N?xfS+PVEea&t$=FGah4u|=^VWX!I(4j{ z!+S^L01^4u%YuV&XV~<;VArRRmbZL<(G*tS{eGv3ns>Pvrdg43rks--HK#nvi4QDF z=AH}Fa$Vx%6VZf^rjYbNrz8RuI&pRD@oX{{tIT&#$oPCKs#H9>` zd*W%OKMd$30PfQZK7Hi?&ODbtW zM_*MPi|+45l6W|5+Scom7|(twA_;6G0c=X>jv{=V%&^Q*F#4xjMYW&C(&Z2(F$X44 zpJj-wM@WIkSNKwH*(N3_0qWF^O`lal6WG($paDt4zUtr_?O{))rX@NYN|J06NPnSH zVc=X7zYW7#=8t1|*qM$C`C_F;cbLnASaQ$pEruJIa2Y4+bJc@wzy0K-4LTn@r zpQS3q>&1(VGLv4Rh@3+il!82G0C?mUu9wQoD+LAtv9u8Gt5Au`Fm2MBDHw zKZ1hwv5cHo$dCFe6jYvYYovc2CRz)#=$zzhKq+0;Ml!CDoy6CwR!|euC}{%A>R)_q z%{c_UHtxGt7v_Gg8{3xj?F8T}Cq1et^gEcIEeejm?%-(ULdVn1hf7`+RbjVE=7P!n z8jM#V91*(}yrq;U2K+V(ofcn?M8Ev00)F#9Qch;YxXv)y?oRp-gcs$_pgpPxd^*M$ z55a>IZ*drmQC@BkHcVbsxjNpZTLl`u9@xOO_SvgZL`SrVb@Ow8qZ;$zZ#0{_Ub?6K zCOVF>+!Nuqe^xE+qy~##8pz)$#d3n)kD$`xACk-B@1J?7Pv7m3?q6rEiwZ&1zOY*3 z=^=qcEM>dNyNK#ovXuKC)U}j<@n6N(XWvc$rE=1viYdR8d$uTW!9j1lFK#LKbOk7D zu+3`B+$KyC10o#DI0>mkKP4^C;c--(gZ`iWvA2xdy>UWPChhGcyWIdAMMTSj3Nho; zHIv*TU6U~s2$~XVmNSn9j8JIs0VDxMYn&j}in#2ht*Ck*Meo)qC=*wgMo{CO?{xde(`LfHw+TpUF#_fK&m+oCv~sp@&ds0%vi&$e9%HW|vx2hj4o4I01t1MKCl0dsZBw$_(f*{<-$ZqNWD^@>7n}WY z=pB-XaeFw1D8G1%8TUrbcP3G##c(~Z3y)tqry`p+$D_TNFpHBMP27D) zclr8LabB&8b)+sa_93WF@k*gH5+fQbQ4Z5B~ zlzhb^;tr*a)n-WkNlTr$)xs+YFU>2YI;!}1JYNgM){a4Iw>jY!SQBO`(i z?_uJ7s1=TLj9UtwN*faAK?bcX zO(u5FY+E)fMHdmK<%Z-tw+#llR&SZR{m8CShzE(f9x3!2UrNJy_ww z>tkJ$>EC~qPGh>;y)OX+kpyWM7nzWM&szK8eDaQITz6SiWLc(^z42d77g0ZtLZatS{0MGD6zX^GSbxTZ*BF@uQzckH!cvJ?C!z9VVJ^8SeP8DxOy+? zqwUx|ibL%XwU4&mI%mTneCO-*(Z%uf8Yl3JznMbxPdG$ZC>Mve z7o`r+VO{V}?zst3P{-mHlRuN2fo;%yU2whrHkG55IUO_;fU}hH=t2=e+YqS%TNLnq z-T^O97RSh8L}<|Z^DjDISPZuR%-ql&o{7lwGeBd-GDjDepDmG29-s#&zQrN5q(B_1 zUL+c=nsMlNRiN_*t9M(ydbiOS+~y6P5hKMpz;eEZVQ)0XB{IAFoX8!0w2Lb z5Xc$Uc*IW+9N=SwS)^y`;k*c0ZC7Zl!mELlcWA`gER@(~jn|+8$Goqx{?(;TeA|bk ze$-f#0hBA3I=Z0t{?{0{Jh~4~{D^~hD9HgIV_w?lI;uj1v#W*wO-Gp5Gri-9&vD7tU#aJLhIna~j933_71PAKkJg0{Ot2!N zqdT7-3z*^O&-4L5eQ0ynvMcXMbjm_r#s_tK;cn}yL2|2`hKk|`Y-@E1@7MlOG^!~W zYXGX*m#XEyi$dMc<%M95JP*IT zAj}m~(N*?c19#C55-kL6$mfefyuInqC948E!N$q3yX$vf0^}8w9bL42BEt{`v7d1e z%h0s8#-m-Q-{D^Dk^5oSP45uO>v);kyqGJgc2Tq7()6U;wCY6kzD%F$5`b@cwYk1C zbiig>3qV+sc_b=V#8kpG54~mB=m8k5Zd!A@NI9}qh+p#zK0Zjq1VWJC8(27=FtVO-Wo<4521uha$}ZsFMM z^tup&n~ssel$}9)bf@XlG1mCGIrVO~7@@K)Eq*=Jtr`_fG)A67shuj6ElgG_elK%w z-Muw)kl!iHy7&GWVO7Ao3>e&aTx|?6|7@27@D&jqUDQ1mFhjwu=T?G%B8xM#xWAj=WcBV|fT}XWWr35V zAW>o6TjM0%8767bk-_o;9N7J2jx7pG{!CVmN~dqP3*Kfw#a?=E2M6u5y!KX;5lo95 zyt&@lL?$bxb!l}vxrXbKQ+vM^b>`>V3qVz^$WexucjxCgrEvDR7g=^sGe@ogmz?h< zdz4WmZI8Qs94A1&hE9KXZ@_sT;H_efDUU*vtA?^WDC!2CXE7LVG_SX4CKDibP3)Wr z9cqi>OJAmC)MzkBdXtWm00HjG2#+$_p6q4WqCoah2eKShD;@2Rdobxpr-G@}1!Mck zVDn^St55z(Yo(U#U*_uc5^q-Jl+kyA)$-DGP2}MglK;_VDK=HFn@U-x)Fl%i_?5VT z%eEI_vs#g(j8Y{Nvz+p9JviaBwmRof4rEnYBR`omY8&dZWDyoo$GYNq8DPPO>a>)9k4zeYm@~H?RXKIO;gN z5Ua%>Q!Me5a_Y@=^&XlDJApKatP-JAV$Wm0G%Oy`r_6LECfw(&3obwU3o{xDWc&=; z;{YI^6i6XOA?Zy{8;O0k7^FxbFDi9vQ$~OM!RafU71mDo_i(gk(%Hqr(T5f;vLs2; z&R#O^Z1x5nC*lH}9I}q%fS>90b1+rm>VpnfbCi$4Eib|5sIX26H+_uGj z>Fka+6E>6VZa7;NFh^YWP+i#Sh;&-$;x(sEHSXL=Ox)AvC`pISNuxVJ9@5PV5?GJe zl@V%ch+0koP^3sSMh_rd>eQ)g9x|4f#-)kfSN6_;jH7IyqdggI+zWG#oc|jMy4^T) z`t5JI<<`@$M_UaTR1?@#wkus&SLjPW*_7UFCVMcf(#B}m09oUK?qEM@jJ6v4DauF) zSy7LbZe(0-%pPo`V~0K3PYK3#-Nfzi+sWqI{vO(bvAEVB${*Bi!?|;PB!S&Pm%HP! z>vI7I-ORS#a6t)+IB4Q#R9)-R2miiGpg?=h0Qx!6z;c-pODT_o6nHAnATJ80-|Zwp zo=oj^&9?Sd^5tmXYx-j<(|7A2yLcYOJ<%#8g z$d@?|IP^&t^5a*4+;D(&icp^31IkKFk^olxK`O&*=5}`%^EKC|uzdI%lrBO;Vqu+= zS4Bj}0V0nDY*C>2hYl10g@XaE?;7_X=nrt=@kv1eEb&S{s-Qk^!&&geD_&fRl^;qC zI#rhd``G7nM0PN_;z*oLejG6AkEaG-MS=4}QHv{}o&{8!m7hNZ2`>j{IuMYPXXb1G zQv>LY2OIZ}`ok8%*FbYgjI_spS!H)6j);Yp6MBVI#{prFhm29k@}8}bWEPxeYirH0 z!WT~PsX&$j_02=1F3I=QMC~$#X9|2{q1qP9B^$ErI3UyKl?}(PAo}4#;pbU93$9lB zNr?*L&u)w^zW{vZKD~+(7lW;V&H(06abrl^?po-G38kgn3ehIni#! zD+BG&d;|8dS5^`84a7udSxbxSjH{7N0XrJE*~EydOK^Vrm4)Y`@(c-KT)nf$0ngzH zsXXsIun%7P+Cqt%FIN@iR>EGq#`sX-E4*vChm?3?EtzAl$k7d_Yr2>8aMM%IE1_wl zJKSVXCuJQpe$Et5Qn+gq_(b6Y-8E*{=9)sg)bz@ur;f*`>m zZ>J(~#_Xp$E3Se4RDYor-P4?=luMlat|UFt9p4gNe&rSgD(Lj+lMO^Xw!~At%9#z3 z-32~dM0~rs!%evor%Xj?u|HO$xyQ~qo{sl4tg|)2O<8D>UyC3>D)W1&S$^b~!+W^D z#+_|bIR@W0#mTR;cL(VnDPYre&D*%d2`zQnedJ?I{pO}Pbx%>W`+QqK^uZk`Eqtgp z^7zY9HFO#M47j2280oA%S|-&{I^0%_{ajd zIM}(Rti3rybuS$<9-*!k=2v&sC8HFY7V1Y~Y*snxaacz_8DWuMJElMCl%fb-2p!fF zs;ECJk*d67KY*juxwxY9%@IW>(u=w<_#59ht=M9y;#4ej9B}zL=T3}#ClAnrtNxZl zXjzF;s45labr*22{Zu&5o9+?lifaIT}Q)H zDc$G{ZD6ypF&Opkv*EhXk+2^<+36zD@=kK0i9KMdeQ!MK;rtP)JtHiBSo7Ogdky4{ z5%P*ywFU|fZD>#I+KYPnX&c+%BW(4WXd|dmv|B5B)QGp2$2jE5q+$#D%AuU$ZjeTT z)6Gh2!9^_aeQ)lga~DKUak@n=D+w=WsZCoVs~J8Ctu?_^CcPqfz;oMfw%An=%Thpu z)#z2Gw|cp=?x+{Tg`toB_B)>S;zvi<29v*l<~Yptk87s*xjp@ao7$Q{X@rbDV`*T% z>cEpq3z4qYuRwmMrmX&j7o{(FP&mn@J5<+V^iTi#td;^C<bzfP5zUK|C@KzT)!^ zno-hf81->ato&0v(`{RU@kOCT7qMM4ZqP-1$oxSjF8;rZHQ*GIin<6KbO#2R#;caB z@-~y$47YsI=!)B-KHsdS0_66*~bWoNY2nVcJOZD~t?o|BeE zQbZaoubY*RqPjC(r2!h7-pI#T-Qv7xv@(4M+~kREF;|v3OGlNqTg|r(8%?Acw^Fn5 z?&i&nTdd9ms6xrX(!V$8(%C@7;!&kNzRI3(%{-w&QH#lDyGaN6_{*99!3R_)j^rUd z%fz;Ek7xz~!7%w&~ug_SD5Q1~L(nnjef zX6m{ht{=rAMvL%2P&e(s;sd_ka6Iflq+W13Qf;Pv?gP&6LCMazD5Azn#c5$MWpIRVuCc%nzU^iT0B*Sl5sJmRd=v1!TOiK74r$}mI9Q{B0dgq z^$ujsCXd^L6Tj$y>m;WpEk|&ODHHsG3gLIqK<5}M@jQ}#!_NKt$@oGmz8+-zs%x?iS=8iQ5peJMzM6><>#8;OVATd4wMC3S zCEiI>*x32GE}A-G-IJ~!%2V=4%u_O38=m2KsA(R5;Hn={XK2Y22QO?FF5F=D#z~fC z&WhJbc`poCY?@DCoNC}o*)4723#lFmWor5& z@-Jl4i$WCd;XLKIlZ?lsaSIJDYGu}SkoE(A``!9DPku)7-97^@h(AqC$b zaPTdlb(dzCeVH=3Sx|+Sp*A|I2KCw>qxF7^g7)i@n2qn9&e3WJ!#N5bT|7>0%wDHc z@Tn9sKkbm|1ZzPd1yQrMBVL@g_RMt?PF@1L?%6{RwQsxq4R1U1)?4np?QOSr?zr_$ zr{8)D3*$_zc`=m>-8N$NP^xHcvhkXRay!uR2&4Igfz$;wM;CJ+*Q`+RnmBlAf;^N; zvLNe%&x?#(E!7Ei^L2^1Z~mH?S3tKEh_zY7M;BJ!aiE#w@pW+Ggaeq9Uz#+JG|}&H za>!csl5`mHNtBoiaZqBxu#N*k)o9qWu(QP?gq;YuJ4wVf=p+`UwGy*ZE=24P`u8P` zW+){pNAd0k^m*YG{ox9lTFh#%3;EZb)}anNN$)-*KV!GDl#?D^ z)PE9pYh@YZF+cqU2l)tHi78aYCXdwUWo~{3*vk+X#^t5y4W&{z(yzK8dFsdFr&IFZ zAP~w`3msjUsxv8hUU|G8oY-=Jbuv2gJ*yzs3vYXtkL0Y8;JwlQaMHSNm1QqIFP7Zx zal#Rpkv2OI^pkVzO)JPH-wV}7|MC)jon(1_Vz^7#aAJeRyZuN0WwpR?Y58pkL*K#k zxDfa>SSBsJVaf9;{cn2b)H~qXyiQvOeA+pOMp^5I-7Dw#vnh?sWTnIlugb zoBq6;Z{`yem1}8TheBaM4AmsHI(M}x zzNiGQZF}PESE>+#%sk|vr9gbnpgpR1d^*M$1;X!lAdC^V#N9wCRu8d^^GEP&xTH8@?;r@+jZh$lbdm^hYRj7-xcxkUzY@1;tlk;wOuhpGQ#{G@`NwVIg zupK!09^_ni3(rC2J#)um>zZ!8k-CFdVozmM9ST1RW>^{FQJqvz=2+q<()2SBlqAXU+}Kz82*jcxi!w; z+2Dvq&Q&rRkLe~Sk~6ZsaubTu)ln4aBR4i7^+R8-?){c_{VH&TUZP@>lSU0a2)6Eo|&Fd_tnHjTCx>cWtdAV z9F~N_k>xPQMxVBeUm1G=E1I3XSkI7F49Qz$G>l967iu=q+5j>Ry zUi*7s9p5Od>!yLtsuU?PvdyaDQ@hea$q+W_^AwFCQyG*9{$evL9m|I-sy4$KeBfEb zkdLMpf6)b4z(LEID{I50=W}Jge`V^^?zaV2_Oo_?7dTUQamkwX6@)Tyo{~pZ6i#0@ zlWATgPXEYB#F?d(V5ILL;H2!oLrx$Sei!q&`buB&jbkgn>cL5f6b*?Q0w}x>*Y7ON zdYX_5menU*4z5%;UmOgY$S zLMhXeRx(Wyxa1(yQGvM9_?TWe849Y)5XEbh?osRT&)BseCMeGYT5>EG+oa5xMcO{Y zPn&5}tX8m+oPK6ag9lL$iTiJ@TmCQJT3WOurP}6P2(@jVkkZ691=_>Y=E)|-QByLE z!DzJC9(0j(T^Y_)wXA&Nfb>OlZ%9weaA@XeGW7WYH8Pq)I3(YZ%6%93@Ch#ZM&!Mf zFBTlEWY-$Kl3_2r;JX;gy2Rag|GqjHI7tu%zCY~4of3$%ILWezt4~w6)3xnnn2h_q zwT=Bg?pYre?2Z-_%c()d0xycDkK*&un}#r_WsZXjh}g<@S;#<1c#to>?zCzILF+xg;v=)#Tt9^+3~}LZ0InjU zqX@6Z0yZds{g?%qWlk zZaLU=Zp92lGkvTJsgHcEN~y>n#VTp(PJb`NX({DVMCns`hA51F%3?I&SQMd?5prkr zlfmYk3vp2Me6UnaF1R$uZhp=)rY=DK=mi_`k7Ubx{jCd~bhJP2C2iVv8jUwy{=5*I zRSN|$eLQU9BjXWN04PE`)BUx(a2b8Nc5ipLpR~uL&2fKwKl!e;*C*+HlhNK9?XDq^ zdzA8Dwwj$01u^z}{Avs}ZyT4|PZA`9o%Bb;4lzv%(1lgq?Ic~ZC1s2sqP9Q75&*9z z-EGuheJKSRV+l2@j8Ep+<`I1GH@_Va7F{q$CRZ2Gohdze~e=-~;mW`EKjq-^;?quM3Kx3!8p)VqUzH>E=I9Z~clxue2Y=Psq_bSLE% zPx`yyXLolmtlC%L2=c9nS9tTVZP?;vEdV~9%Dl<3VKPFF6y)zt`LIP=&WSB-&rVva z1(gi?!=%HvX?1XwRWDhju7xX@bk85IeVHI^%#>Gv9NCyP5pJaW8^YB^2GKpAPzYLY zu#c?anU1V%j7Ec`JEX@B>Bz^8T=GGwg70)Lq14`)I*TS#u8slx5+p5BeCf_cH%&VG z<3V|4g`C3OF(R-Ik6)G!-~+i};&P#|byx;7Fj`!6e|IApmyg=XqZ|uGDB=AAb@V9J z`vCI4n~oR=hhTuzF@UXbND=5OC=pOdI{*K(_a;!1WoLOH)s4Z_3>=TmFlNpSJZ000 z$m-0frG*-mIvb=`x76cSx9F}$W=f@~mk}>Bqbo8ZJ6=RBomIksC45*6)e>5e5sS4U zw6%KI%5r9~4#z&8v9XC7@Pf^l@eBwLFyrw-c)tI?`@8qOcoFfcE2PLepw4*j?(h58 z```Z#o5TLOWaeSgVKh2OG*=^C+#odjL`ChQS@OQ?>>bGJMLqBp53NhZsLO?HYm^Rg z)6zV$BH4{Qvy%E&rw7D#AZsX$W;8+2JzjBpCn{>M)fvtT!|YTkYZC6RsA^zzVsub( zYfy~avkHprbhkPK_?G7oTG<9^Z=u@uhMggFj*31AE{of)vb_pdZf^%0Top|d+yob_ zOj3DsnMn4ds^+Rh-s7FUStpCQc{Va;ZeVl?a!2@;(&lbFIG2#gni)>6R=a6chX^-Q-W&BX-LAcN11+rl+#JT{lz}U(RiCR>tf#I0t9;+nS3t2b!CQH|I4s4~ckf z&dr^@7UyNpfd=Q|&whJzGH9>CIXJY});uiQZ)`puo!efe2%Mculg}^1=Ykxy12+MR z3J<66u$srlYHoGTC%8GR*Gw-#7*0^BwW$La%3(g;br|snGD(tj1M)7%JV68RFk1-$ zU!mC#vtR0g3704B;@Pj+31;H)?N>s;SLC36=Z~LIM-*M>Ejy^SIVV@j*-M_H-m+ZEsA!|y7n%&bkpZ8%- zv#a#5ZI`SD4{Ce5>b#l(I}uX|A81t>zMo-O`HslBq;J_R8bRfAaMrUYX+2rZx%zkcQ zIW56@(=|u1=6-<}U&7AB+x_tenf&}4TvkV=2kLP`wIw;Lpb(sN;+|^0qu53l;Lj|`l=Ls)LN@cNk~^Dxx{##zK~t759pd_tXzDrTxdqePyIDphmY z*yytvHtHKDU;kVl|CD84e8wp^Sv4F|5)v^2Uve z?J3G-o&cjcqH?e=(;l^uQ!opOj6IRRbZ7xLl?^X7TRZV!8{txj+8ZEJySX(;aNMLf zX?wp!%Q#ci)XvIB;f%YzIcPUe96NEWSo-G@lpeEg^*W5&ZyRS!5b{Bxe&qyq)^TEn zJ=)Yazs>RK=H+nofjdw{^vB7}E03*+dK_UOH@18;GCeoSw3b0+?#Bf&5&zEA&Krv= z?a?K4JFk(_LvTV6Gb70~lBXe_j|UwHpgBJ8d7NSFPYCJKtGJlTVUY${pg2~g9RAL0 z)ZwatilT{s7w{q&;Jo0U{i9-N8vj;Wq=>`fMl%^0O#AlYp^N0uK zMZKO**hOIdZ=c{7DB|vgj@YXB`(5;jt1rFGp0Ma3F>!C$A6(+oHFM~=on4#-o1^|b zYY@quQ+e9!}g%GS0PmkTpd)$QhoCn3TDRo~=9^$8l`U zsS;_1k9$(L7Of{canMG{qz5{f<@oX|A82pitwR zLzBGzeu8)X^=}xjLK`{4LalAWEMAh~8V?dp3;f&ZEX1{Kr!0c})v;#MXs<@5lunY05C$Z)~gpDKn zDKwiI1yXCivz8T{Yu<~Iesvyy_FjC6Pf5n-Q=Ae`M_szvWae{Ssx{!djcpm)6-D~2 z33_#|(x_WIfBrg+4J!S_!_||AXH9m#bBgD%-#Q}{k*7K7c;S#43nq6e3djhm#ExTc zF6+;4D{eoENb1SfL%xCKx7kMm6r2_AHs@r-l7h{|=>&51t*Qyk_;qo17~8dT5awK` zsf*5xcqZCtzCav~4~VxjvD;vt9#@V()lsh@_ja_J`Zxbu#NWPLoIt zvLP=6GTC3^5zc%MI*)VuiE`f#rYz_ELRy(qgHd8zwr*=zbZ#zOfx#&a=jvCbI}{04 zufrLcw_h(?q9VuhyYBl#b-_%)b6ga^D|4JpthH=r!l%g1>@J*TA>6db>Wv>#Hwp*1j`;RQYl7hCy9V7;2l7VYDe5m9|N1QPue`;yIoVqsPL@}r zEKl>e$P_8)tdBm0+atFFk3bEx0t>TpL6vWzjJ}=czlLAGl)j!`;Bv}1Ozf9*3s$boy%#B0rtX{5WR6AR z%JgV!&_`~j_NF-TeN@aWCtK#^N}M$FgQ5|`vc_jL#}cmuZ?dn*Qx_DORO+In%-SkO zS6i)Da07`+V=Yg)Z+5o%j=?6G)krg46>uK?M_Jac@7>X7hgt1d@{Rc79{T0kjNJDFcE># zAYD^yxESEr{Wfz`g5*lbkKB!0?p+;ug%%bFFJT7gNf|k}JTWu57R#9r$!07ByhkHI zzN>TI@U@6`)9G{y^4#-Xcl4*aL918}$%Zn5C@O4N`^tK4UI6&Zrn?5tr+v-j?~s1QcvX61b03e5b26NvANg!s6CNqCmzLk;un z3k`a8Ws|tsaxu8y`E^fwZuNV}qU-=Kr_92lEl0x^Gs|Or6DtV~TQp)J?3_lJcqMS9 zS)9p1(U=`Zm8s!ZK2_vWa3E4taADzbOIYJl&a*U+@sz2@ zyyutcbPqBeQF>^L0rg3gtPA$VH!#a0(7fsTykZ^8YBI}*l)-O7hp*$CQlI(`UKY#r z(lECAu8I}?oiAHghD&um)SrX4a#fZWcTa~_&;sC{K8LbCt@1cUkwES|=@%>GML&A` z*xU}J%|5a7-{e!`l89WOl&iD6NO?v@PdIC6LFHbXR|N}et`*^Wv;i58%-wLBS|~x& zv!KdA^J6_9G%7~KneYVA1nVp@XoBluf#xpFUxFnKgE4@KG+w5(|0@H_kN>c`*-N|s z8)>h9VXGUTOA65P(yX`)S6W`UJR4pR3oqZT@e(e&n1K0-_fObWbGXWcvdasPkF)Bb zL(wf*jBMHCmeN9}$Xa)+TqkYWT%#G(UiG}HQkZ}0B`OxquqjvF(_K3FD_v`Ok@#HB zI$Dr?wdPbgWeuy+pJ5^N=c^B^+$;t*8R4u4?BYh|W|>@Vd4cnM-bz}?c|;>8uW$f5 z(S;7elt;sezD@Kv?yFe{Fg@{@N-%Fwk(JyzXj+}5E$Mp83#S)y*V4k%>olHnO9uee z>y=w0i+8#x3?7bB%myu2WJ zI<$fohuY962^Gx1dHB0xdOuntlFI*BrGD;&Mavm7j)MdwvXvY-F7uU)&mRrKe;tz4Dm1zsku zL#&{Mz`VE)QP6NB@p~bd(J%Z{Uwgsud|ffmxo*NN zxJr~?UYI@UN_ecDg}0aI*jOm#aGQk?OCNmuxC9JcnN*^}@+{E$kBY z{^p}=B5;0{6Kmlt7lqOzH5M}RMD#l9q$serhmiXSH-1ETME9lFYrDx12YQAvq}KkG zRq>3(B1y5@Y6J0yDebn`YY)kr<)9# zoXf4g^7wFlcM^opc1Oucu8C2b z&S{1i9wte{!NT0|SjkU($v4$naXM_qgF$?$IqV06vAw;MP?d$Hhz6@A9z}%akVhF) zHo+9~bf^PEDdWqUP(lUk{6QqGAXYALq%H8-GKyWKTH%99Go$b7Sj^wjwG6ip4ZbQZ z@3~{+^{h^*HI-1u4*#CA?g4)JxD$~82HY`RW90VmvrG z7sY9WpC&GeEgzL06$R#U+FuPjL`Cye!S#hV`-Ea*#wO#{qq5@42Y__}`}yMKvJm?p zHDZgaWFSl8JWYlIvdtLxLGl1dxKEE}sT)vxN>_22L{sMg)Dt<db8ai6WZG%hFL5Eq(qLpO(xirWt6dxbgulWoW5*xhz_`plPYN zN`{uECzyHk=NEvq{RrSunOyR4LJd}2L0V=)axa#y0aR|8mpHtgLBUV?#d3* z{o1#A=|{RrZ+p1o;54Vq!opD)^Pc%9W|n90O{~N!@&`pD7PLkhTH;k5{sUy}P2qL0 z+yXkeu5Z*@$c~Vaft|k>;Mu3@QB_7iDG}5%y6@Z*H zwm7Gfd~N4fGO!|Dk$hz`Ws=lR+4yGt^zh-Sl2KH~lfL*?KXsQ;G{lq~7)>s|j6nKi zcFioFwXKnqE#z=7KuN)V~H2|@%)V!cg5x|Y=RhAma{vghKE>{nHP)j(R~8FlsF@Y$2c(vX1e zYn39DX7)Q)raNA{(+9C}_|m|$T0n{NOA2Cd-7FA)QiIqlH4}&n0eV|huWJa_j%OeU zhs%+Owv}`dY#c2J9DnEYKD>;^T@H?3`6Y#;w+(41_bdVYB}RGE5gMg5X)%0g#LGfVwe z1?q zt(dYnBcQaKH2DVD)P;-}*BGj@u$ajSN({{*Pn1pB1WUE2LmgO9dO|}fR50sOCbP6S zZ+57aj1Y|MR_FHv7Hq_a22+)2{G*2oA{Ij(yI{_blnm89K=r7POSFkF7}X})F|=A1 zyv-#PTB3$(*oYL--}@9xF86|?%h2@r>ZAG!himC*Eh`25jmoF{$3HzjnpOI(RAr&r zx=5V1_5l`MEPi3aYFlXRYi2v4&Qy4eR^IfcMMC8N{ToG*Rg(cZB||^Jql?GS8=Ww; z))pLl8ji(PzM|3ir+@ZLmOTzS+dHm5BwS=sktJepycj8-R*vpCsR~Qg4{!?>K;EkX z!f)y#R<1crE@B&5M04QUP$eeIg-mfvo<=yK<+-&)FI>qWo(EKwR`?eUF9Eq$Jh&rA z_D(3fZ20@QyHpkse@+9@Eiw_2Dhx*8S8sX2cV{6kyYK5ETW$H~hFjf`V3~J+&6!EC zcF;Dd@Up?}6B!<0@OJIcAq}`pq0)%M?rjoX*hzY{=M_R!v=JSPG$L^@wTA<;{5$EQ zs(zD>Hi1=lYq$WvWT3Afm-}j=eg%lBnD`5)Tt$isecY8!xZIck!gt>^_IFDxUD;=$ zlZ!7KtUsAuFN5o`IZBl+^y1?>!;%S*6JVV~NSaa#@O)z!^k2H$3smgll4l%4a2Ru5 zp+!Zm+!*&1P&v086|_Vx)<-UuD+YZ>1dFwMeU^9+3g^pk+sr|6`bN& z!QIM(HlA!=YPP!ZC`~qcNa+ual}a{|Tatg5Q&(k&p2C_l0IzGSSGD&yyVK~ZACh3i zlN@P9n(VvlzwNVDt$fM8928G3zMObAL636P46v`=^teWLc5U+@UWhOe{LifPR?60) z5wB0JW-><@wL-i|yPZ~I9#Tv404t78X+}$r=^q%fqywcPi|0@+Ffa6 z8u!$iLvQYzQi8Xbvbcv3b*-+RK7JB)4Sij?a%L*A$5duX)P-gyLicbO!(vF$SNt2F z9hmUha_qn>zohKITL+6Bd~K}RfmdvHc2LL)&>>}+>80=w_Tt?n-HV}-TWR>@>xQel zA}Qi_auIdh$Cr_HVV9y7vJIq2l-G&7O}a=rg?js@wKuPQ$690U^4fQ=9a+0=t-iLp zc6#m1+Wy)Vj0mnl8q}>X-mFp87@}szc$`05GgB<~1Y32g z8G5sG9xR3cx$pn*(s$F579_viaqZq=bS82jlGi}Rt*^`G5-4i zkjTBDUe>od1ElGspKD+!t$wd9f6ya3gIe;CHGPnb@3BPNb8naXLHx#uRCBD#(U`vA z>oVFIraE&#S)%;1!qcP%S1V`X^f`l5`-nARtOTfxkW@_@sY8rb0viIwVZeqGvTrQ9 zu%*zVnB3O+HS|sMcDfOkih0PUJA9 zp-^$lEi8)~+~$_t-&dg5>39}Hx?lVgAG*e!p_YFFbo~lT3tfLH40Nx3L#nasmzxT^ zXa{Q{8~%v zuoY9oUQnn9K(^9)V;nFF%$cNYVaOGm>K}Mr6U91Ssd5lN^IRE8OVa zAK2Vq_A_B_Bn1kq=6|+=Iqr74@WHTMTkS-T9iuPk4cP8)mI-_HXPh-|9Jx-j&YigF za<++Q>X(|h33wo`2L7L1Y$bccg3DMQ>7}E+y*?C$wozcnv+DXq$XBeCq?6J9O9od~ z8Ys0J4|Pfo5hca_vJVvM2!*3cADU=x%CmM?bG=wq`7qwm^%ZWjVW9M*2@1DgVQCd^ ze<_T@J^p~!xBX(%>DxMkho#HT;29w{Jtsm-xU{Om>bpMcWq(QIE!?k!D?S{A<`-L7 zT;?Qu(eumm{+6l7?%!Y1O<906L45ixaF}%4YY|t%esk<$+24B&@?I2#`< z%G05TP!-PJ_nglYwO?2F<{++2h2_Pb$sMCt&jO*zqvbEMgCgZk*uN#(?WaQ$*YPH7 zG^7&j_iD(MF9bOZAYAdbHR`oU?njrBA)7mCKe~`akB(5Wm(Yc3{RjcpoU1UpMI@yr zM#9z{C_wnm_VCkdm@I0%9cBo(w zpu+*;_ZJ*Xzxb!6c&ZDfg4{S!)v2KG@>bEKd>mzUYToy7~^iw|$($3o}lw4oFnz7 zs?Rd;Nv~-Oaprnguap8EpO%4e^sn{ss^o}B@^{VUhd7cexV#}$1$bi6<)RBV3ddegBtxQvcAxkSE%q-Od$dyKMemZ zlf?Ae*kp$wore=w=2LtACqA8J>76!i*z9210|%}J&+}$8LrfO<`m80sA6*QAqCYodV${jF_&tVX+U?^jcMb!TyO*#iH7St(Bi z601M|UX15ZHYS4Uy(;bJS3d9iDYd{g-8qz6s>U+Y>{EdiG{igp8=7_lc7_WcS=GibzxHq*vpKYr$cLK0q1@VoKQgzIcF{8oLvy) z{JMV=P29WGWPm$p@q!F=v4urQPOyL;c%Cv)rk)5g&`nvO*w>)YZ@s*{#7By}-nynI z)T}J7^Gi1G6pZG7dH_|)wJ-ktf|vo_n}fJA6_yu!Cdfdqo&~~0gV6t^K{T>x(=EZl zX{Xg!$(TCdEawM~+78 zGIWKCEiy*`@rD=5ilysNgpPyD+)@jR#hmlkYIb=twL~=*sUKDiS@1L2&DG1gNUs3E z$Qu^L{&-LfA&xO%^EEXRA&wtOO#($SeoP7YUM0^ zzDKi1Z+(k_O7Zff3aU1pbJ{Kt$$bv54tSmgb=uyc`r-hHE1fx0%8kjUJHE+R-F%$8 z(DPJLzrwO&&pME;fMS8q1ljv5Rt|jt6xwyM2VbA$t-zR*CcuLwBal#71jQQz#Q*Kv zz3>M~J;-~M4C1bX!3kv-7Jee_rswpQQ_K^{lWVa&{UrkI|!T^-l5yB?ZVyMw4o`u?jUrMq-MSi077!tuGB&t~EB^}aNA zKe3C?D5?RX%As3xh3J&$*DCYp{_BA5)*1~4*r;pj^SUl>yyUxH`GrMHUSLjk!g;K0 zn)=Mtp7hqn!p}(K$14TPlz2}uQ}b$N_*%V!z*Rp8!3ck^|EgHp|M_rHU{3a9x#%ni z%*j?ffT@anumW?ki)7(-SL0RlMh^leEv5JBB+|s1U`CFI)f}e2I%oWtr&77?SB1$d4NrYO*<+lyGj-~@73Te_#OtGaQe|1?D{Ii@XV(tE0e;1 z^gsBpD&VsdU{z4_09G1S1*>Gi>H!U_g7OAd9@AS0czvlku4k;nl#vI`F5{Xh^J4vp5?FtcETupD zx8oC8Qh@WHcj=qWa+EMb0|$hl31MaOa$9upqndF~u4c%f?tRE8Ml=P|=SD;oQ4Jbp z?Yct#>WhTu|M%lQo(n9^AZPdRJh_1bJR3YuUM&mHKcMkExthVV*+Vj(suGIK{NWnY zYp7M}EdSrHeKyOdFLc_&o#y7KbuMuaLK^F#R7EQ~ba*aNHxw(t2X zKRqtjp=$}2tF!D-ekSB6@$DOw*nlpy=|CcISx5HBaCj<{x*P8D2vqnY5!-|$1+EFYguxh@ydf+LD7~ib9ldIbOf6uL#J*6NX3}U1@?e~yn!2xGs$*(j( z+OwR}0?$?z7P$S?Lg9~T6xs#kMcT*LBJuP@nV37ffsC!~w;i6wfSiAiV&t+ZUoZhtWraQ|kw6IvpIlv|7mZ!K)uEjdrhh#GrWG)!? zMA>0+$C;IjM2kEKy4+mevdxTwCN@Km4h?7H)zOHVwg0PrsD)vsvj3{IvRAxqEY81K z?mVp_$i7_mHL>_|g6)&pRkKiM5;JED1>wj3Cb{;?4i(U1MT@*pbGeW!)3#pua{r99 zWsC>mzVbzcY6da2eVm?wY`Nm9aY~WxMT?bwwbVSwkG$m@oYH9xH5RVsVDXYd%mA3TS zf10l?slFVvO)kEyu+#dIS~m-R|MsxB;F3)qqy*lIkvOZV3VKi!$C+iScD-3=he8wN z;&!`UquZ$0qT2fLnu%{PVGydALODvJpcN-UFPccA-D~L^WCfB}MfMs}&FHu({g?hB zS3Fh8ILA2k!{O;RygbWJj@3(WZH8DC=L*j=vclfvU{Y|laQ~QQ zyWaZdg5H7o1WMt9(DQ5=1y%Zj>B`AcD7ckR$m zYux$eg1}=2M^Q|;FPj(+sRYpm(!f79!e7atrd=tB%~EZ0NpN9Kq=-cD=JHQj3%S8i z7a^++Zl5lqFhN-k&ZlGNwcUPi$QQ8PUJW-V*3L0pbXS6sKF$Cq6QXXT*Ty2UNSG%q z?CmoMh{?)HRpfl?OFlUppKVEU_A4wcIr~dt$a#E4Q?p;pqh^)8&$v7-bx7S#u0Bw< zHmmOQ977LyIz7o(6$an*)NYkokNS5wpeiO6cmH{)ss*u`$ zou3<8lZENd!EC7-%Zy%geTG><3&y{pVH{ZL>F~_Ti|NExVN{YqA`FV5(1s$|uS+J` zw-(Xhm9Do+hVslCO_gl~JoY93>W-#af@Uw-j)$G|i3?ees6thi8M9A^7Q}$|+98uB zFjVqJ!#0Y#NpE|&LwgSvuO`Q_$g@g1aD*c_vY1A-cs@w>x^XM@@YqzOik;vPN1Dom8GVg(1O^sbBE^mp^{V64qAg9XG85S zoNYp2JENNTyFP6-pM+uVPfVYT&rtIgW;ElSVmi8gHcZJrm_x!mQA#iI2_Q6ws?@8; zf6wpFSV~4}O(3{Xm8B-Q(1L^sE>v;~gbJJWfZ%@WBe*RQM-0+tzxRV56erOak>Gyt zPM_e+26SnH3sqTaf(tE(O>ln(5)oTyp^_C79Dl}{Z5^%pt)AxNto^Mm9I7VO&z7j` z5k;P_op?AmB5RIB>*-e^pDVKf-}dL8*UaohI+C=Y+*cYkn;A~&U2`i6 z@0xjLXn6d$H3^&7?1d$=kXz4k2LiN`8?cwV&wkoR!W=<|8YW1;QlBtY4zwev;YhjNeQ+@07V~D#PHrB8Nsggu^Jk&_P5=wsohPH3}p~O}b60js9uC^yg`>x>RCU zPoBwiZ*Q_wv-A%OMH37*?N(<4O-6T%y1I5U7~o*;E{=7_+q{i`3JGA(LS^QqhL(I* z{?&?m6e_=&M58omBS+bA$E>XwM2a+1Y1A3Q|J$WRv;7{YJni(h`h#6w?I>-5TH?mx z!`y{g6zT_gXyabC%|>*0zn6B}oK5u{WmZM|adf_uT!{LEXc%vH6R7toovRYz`f_P# zKN71W0~5r_}uo^4O73Da9=FxKYWf%#1#2H)wd#_$M_hvI~f8E^ARQ zxzJ3y;Qc+ELM`iD5rfWpR=9b$#R~R6Cgze7gQ?1|^1|;-%#juVX309s4$*90HL;Qw zR!u^gj3Y&qEC4M|hjJ!HSrDwBe{&!sepoQ4J#PeI&F=22%;fy+*ZC>0vTA1tY$Zuz z+0o{uSM%WZ9?crV%U*~#pvnXx3h;?EpsH5jt=MX)pSIw5W`6(k6FG8G3}@0_Mpc~i z3x|C)XHEA~Xbx9edNhZZ#bTZY&EcX7mlpVx$cJKhfaYP+ZpOpkeARFNueE#M^Q&L> zWjd}RZtmeyhkm=ci909S@c{OLqo9_ov#?mcQ*Ix^&cQt6Zs&0}c+#V=P3RK6%}Z(l zG9~g9*tr^Hwf33dsvFo}JM_((iwBF=Vdv5dVYIEm*y5jTbKw_mK!YW`yVu<6B;EEJ zj#kitI@-pjzx#XgPx0LyddZCs3JxQyEmt|J`A_6EvQ8nbe+4H~k<9p+|GqPxvS*jv zrmTEGccloK>F)Ez2(Sq7=0Kv2AZn_oL~MP6_>oVmOLRMAGqzsycr<8lD;c(Snu8=o z?wgHMgHd8gnVmo&_?Y}YD&{tYQQR8p=oh5J>Brq9#Q`c@a8zH}-_J0PD_2%lu_L>` zZ}-8v1qk#^+{scXpzK|IPK1Er`v_g2kKqhO1z_7V%h($AGf>7 zz7@Y$dLuNsRj;i?Z!ugCf3MWm;6=1%v4Vs=ZhQ6+y-Ozfo>bH4s#pYYRlNpsx?6+( zZbZv!Gixkr!#rb-jYnJqfko7;^OwosH3bptNu9fB*kPs_x)XV^l$JF|FZMu=Pu0Jir7ij0Nz$o# zDZgnAIT@9BLO;b?!qor*$1W=U?`3c}aX5da*?hx258e0RYnu1ocmJt-9%?pM*4&RE z7$bVHG#{-sDOSgaj#-@$>g@i$-7CLckihJpdD-X2-=)fP&hb9rhVG2>K~jaw ztY&WJfP0naUKDg(?&Dbe>|6dOD-TXR+U<5cN|f1%Gn1-aNbJxMy=WR24jPaQ?4GU8 zc4Lq{HtGzLdM#4|K@V~tQ??*JOH(j4RHOqX27Z^XOmyQjiT36NCL4*5z){X z^*WD@l4hrky|0={7})8xx}$c&;SF*%+t9}b6rT_n1wI+V7GT6a)@25r;c;Y+p~oo$ z6J&k_JGMiv2`wceCVImTJaYpqCx?ifu2IZM?F`S>D%tP0Vcm;p7?h3M@gDHjAca;v zrZX?`CT;-UP=7!jh*igHoTK`JO$}~nzR7ut-jTbx6{T04?fU*%{>pFdgzh6Pu=%@_Yg#E zzlOrd7A$)#!4_N}JDC>ledPZ8n-AS{??d-I{5rR~HHhS5Cmp8EIBoJMsefm!5${3~ zH5e!KI|(`pZL4Gn38^ zUv|(Q^!I2zXk^(wsg=6lIQT_i?&e&JWFZJOY9XYDkz~HO^S!78>Np4nF<>kS5{80~ zMti(Elv2fBL5fx4?#1{L2L35|yKbO`KJ172HBk=CmGO|KtDQ*P%C8MI~&DYU@;WQg`3I2x;yC(vr?-~TK3ZY zGxbV-nDuEY1V#v5!>C?KA9goBmjF%ZE=os(B)X8)&L>f;+o#C3{s_ZD5S%+0ax>D{ zU&(l2rmI~{{P{OWoo-ujS`8Toi~z8+_E`w+-xA#|U`tVOyL-b+a>GRixvk$KQ~3C9 z+ugX+lT46giTT*vOnH5|wnZP(ZE0W7lHf+*Id%TndNWAz@-;DJ>Psaamv~akBt|7d z=yc{35>-vW(D-UCM~c}htV=P2m7V6FktE7@S+;gYGn%%#(T%3BDOIFtD+)D9C9-rB zI6WCGbhjUqxF=_R$lbqs8mZ}raqZ0MWAuM8u%uR#RSYr8S(`nc+pOi+opPurs7)Bi zM!69xu<(h)y2If}Iy$LXFQH66g^^@9XGTNGET?>{j779(o^S`3!CLm}@erEe=4c50 zn}!nZx>Ur43xhRP?SV^`F?z`O(>ijugs zBMn?~iG!2TId&4-F5`j$0X7tMNCySW-cIV)DjVjgl%Cym8^c(6Xw>VGGD}ryXG5Ti zwl(-?y+f|}RsP-I5|6^o+QAXH!3DG0>etZ;`vRGqRnJ50BpZUoAY85WEu>fzn}F^; z;O#2h1tV<(jH849uQkzzvMCG`q=prnLbDT8PInm7Qejpt_O(>vK>p5~`4Ie;*dh&t zRY1wVgDev4*7Imh$s{#PL|ao&S5?-$Kn4TMItKAUXC8*&yLvElv}5zPnVacY#{qcP ztdSL_q`5$rS_l=t^oP$8rh;;`CW+gSpw$8{9H1c>8=nAA>*UPR@ZWHHD*us&eX9x4 ziJ~ZbfCO84#sQxCPH(-&l&RHKPjjKdg*(gS6Eg>GZCM-HxfSn_%u zBV{Ztyc#UE>Woy$Pw4Qo%1#K`SF%WTCqS}yfY60O8)s~oD3bPyc3nA9h#^5MwQ(Ah z*1j2_^l?P^hY>=;RKmnEIy^nGt+GBYHe&-ZXcj87jN8e#%Zd!EDSESwP^D7{;5DTV z3%%yP2OhrXp;NrN8UbPa$S;d8&8tM#J=#%A#q15+rcMWD{h+4x`s>CYV0Z!60xute zXJH^tM=3sn6c8}g ztxxZ=;vlq7z zazQjRf1tsw8pv{I&Dl;?y;lXUzx&-jc?3Ij_wC9Ja#;Xpj!4O8t3ofpW zK|bb0ng?uZatdyM`yzFmPMvL%#Tp&6_^n%CZCi7*^h*6RjpP=gqJA+MguPOOAu#B7 z+Usz>o;-TAhHdbbT1|xhsZP{?5qG&#+ZhfE3+h5?UUOW6d$O{FQq$i}y^CkqHD`&+ z6Lypp&a>*?u_YGWm|bSJWKT3Ls-iY z!zP2W!+))1Mn(n%S-xPmp254-8Ndic&OvOF;{pq9kP_AC$bUUVdMYF4?J#mw?9fhP zeWk{7gbX${LpYe$qGML7Oll*iG7FqcW!&px#1hpN6OooJ$#`#0LjK@FHsrVvlAr3C z^)tf3NPoA)ptHSWT^dO*>7PBcHS^)bOS=bo6OCP-z3uDdjL$5&v$)h0KA-c<5yYym z?B}!{^;(jd=~+usPA)6I;9PR~U3tRS*n3j=Dg+e>@@KL-J%6NUvrom+-&pDXOQ-zP z1WK#Lmw?w4`{yq6^{zVh$}cM8mDhi|rl+1|j=Y~-iKYIN-YOUdJbs_%zg{W9d)Fee z^z=}sGf#E3piYo&dVZ7DOXuhrIeJ7@=?R~Bo1c9$zgHKpQw(<*f&1zFbu z5Y8`OfMspw!YvFRA)VuP5D)EQ1t;5XbLjxTS2pmN<)(JE(jBHKAC!{8hf@2<>3S_X z!D`4$*@hIPcUY?q5sP5TQ9^gE%_U>57Kn_h2<7Qt@iVy(5ue!HN-iMr6g&EdJ8{n? z5igT_sLH|;hsc(k!kO5^iTD;ST}3qH(aePNxO?f!%;ldBEsP z5Q8-esQ_;jVWM5R1y^M8g}Tdf`C!u)m*??J>4(2MUe9VPn(RYkstUfJKRji}E{>-g z^Z}rElg|}?R)g$oH-E|(03jsgBmFRdF3ttix8hE>iQTRi*mzCbZeUIbl^XSs+9Bx< zW3t5%&qTqVeEeIU{bqwh?6IRcl&&A)Bg>*@e}o)^99l2;)J1R)w*t#3O>(~oi^{aC?V`-Mj7=k6WIN+}Ja#%`49k{o3E+^fX!G!4OaW1> zao6iEI$|}9_<7wuwSj#=T5%C{udHN%_0_cw~w$?5({{Xtz?QvMI<`nXnQSs zNrx0Dj9HxT6tDXi#G=s!zI+mz`Vjvv>?A$$vT44=UGhnGs?=I9s%I7mR&;n}j2D*r z3e5@aT|!PVaatmU?Lz0bap|_R7{MXZi4_7~c!;i5kDm8pd=n1cm8(gA^J-AMwy+Sf zw)IXUY1m6Ah67wXBjUh^WBdp^sPt(wl)$eT6FkZkI5>P*lE9IOUoa}>y125clxaWn zt55pZ4Kb&{VIV}(VQxGNmvi5e6*qwz3(K!nLRwb=ai^Q7f0V7u>c>-oRWUqz{BEUv zxLxP7O?5a{d{=pZ=Q}yfOcdDufK>lpe7d42!cGHjLXdNyF z@)3S`{}%A;2a*J_Oo;14QepDL#&WxrPcE+EDNI8;oS}F%&I@iPUC6n0ItwvLZ=tj# zLUFNF7Vh^AgXBC;$3-~VH@HMm&In;{Z&DB)tbmjrkc4eSrzi^NLVs{BMZc{Wd5r@S} zh_1CEzGp>d{@WEi)DFW_*Dt?-~RLrox2n?{ooHs3AYwJ)@4!} zzr>aDfp2Yy>e@|T$`SQ}YLyZhRD|f%`orIQKMZ0zY#VL%``rY#Fr80}D58c=ltMWm zu?%vJF6?x0B1%}qX@tYw_plJYg#>a$8{8DXgh z3=L8Md)96RXcD9wkWZWCAQ|+?H{x(2DbNq|R%Ovxn2!ZUG3>iTQ02m%+YC>2ZPF5i zR>7=Mqth0`-x@2PvEfX+;W*r-SI5+%NAyehQmm@HB<#MxH4>&gwTL4O+#ny4!2`3z z?sGn+O{?o0=4MihVV(br@A87Qq{M5%<#Wm5e}yF%meYx#Utek9`Q<4J6Du)C`>4HC zhIfsB(I^Dmi{ejG=F_ncDEzp-T4h!$FWtGl9EqOayrt^TCbshu;;+X_Ou z><%4xmaMakKs6y@_UakLUOQx>ejaB9ohmL=FzGE^V_(GjG| zK{g>B9%ZtRYQbgKTtFrZo znMZh`D+r+i6W2^f$T|J{@L_IGj_0tDwpI(#ofN;Ri}Mx%mWa>AkR?CmF5DAdP?B6y zKW4{Uz^X{|-+$5Xj4=g`f@~J(IX(AKN{R9dOOk@^Wo3sw)jR=Gt|m*7C%yGEggO2x zB}(j0l{~T3y0Q|)ZYD>J*sabjIP#-yyjfQT(Ler7L2!`Qt1CjL818a|)`SUpD{9bt z?a(U#U$*#Fs<E3T=Al_LX5z~*%I@n$r(l-h?Bi&YJ*ZKG~vxUx5mO! zOL)W09ef^>FI$({yx6RB8#bge{(Z&h-4X%fz-^Ss9CJSIj*<<^qD8k;UUYtQu7DKz z=Qfb(3u*KDq&uLQo0XYq*zI_-aInT<4S|dr=)pfj>QK0$X5*L6{xr zEHbu`EJ16v{3qwHa;5Z8=ynigr2@s_2|(Izu`z}{*^_i)BX+R;pU zoLG+b1mR@d?9&z_MWdYU56&Xd9PK62rXp=-rX%olY=m-;$6>0SAQMP#9%>dNG7idY zk<3Uq*hVFUkfB)2jiS4dJ4vx74!l8D9i*;<*q}X43<6^REYcrhg9?L!Cs1VJqi`aT zUIH;kL+o$%YPek%YtJJejJk=qU=kpxVN+-tZn}U#fJpNUsp9G2pxvuy+YY28gCOUb4PdP;- z&_fw*#OZK;-DARLUto|GDIo9tE8jP1r!vsFtA$KI_yc-KiJ+JsvOAT50JiV$RQ4$ga5j>&b}H53+9EriaB+HC3q|hasV&^LwfRWhgj>Xo zUUH;dM>s>Rq7>$2j&)+mC?gcVr#JkEdx)23#M#K0h3FV2dQSf+S-Pl?6zO^m=nWsS zMM7DxidDm}pzm0xCe%MGmWuK=HE`UR&+V>pA9mg_sv#fJ%%rMBPa$=`QUvd}{7808>v(fkw0Kq=b&_pRX4ta~7uX%*`UlY_ z=Sfu)Xv1Q;NS-B1?AM^-*8}t6LwHGadD@Ush!u|YDK`Gmg~!sxWLSXM`!#Bt1sk3(&Xlo-n2CIVXAJ^Hu z82-D}w~kL_1HCO_gYDMcO`Kb0owZMgWq9}2CAAqESXh#KIWI=m(2%-8cro$>$Ba!0 zzsAbsk6@^COld2rLR2_VL!O~;D*b=z6L0WEFJ*Tm3;WHLP9=shzjyGJS$Ml)bA=T0;2NjAL@})#2O(81U{0To{K{>Bc^6=$;n0cW~nQGtq1N!;=xRBE3aywM1`O zsWoKYT`PPKUlt?BXAxc_F=4*80w0kk-=q)fUKd0a#7?-UXL#Od{S~yb!i`hRE3Kxd z<$CLk(txM_PaggOF@Td8 zrDJ9CiW#!FcGG7-7lLC>u2+Ig%rVM#A0bEBLd9XaVRWfK;)9bS^$o{Hsc>B*?>TfA zw)ZK7?XIC}wDQ`A9(?2t(W}2dI=(_Nx-W+=KZ zjxrnxw*iXl6b8OLQf=@SspwDUjI#UV6DMVQLc9~?q1}zD${h%WqA6$OM~uk{V?G$Q z+0YTya5EFjS~0Nb2uiWgm7}&hkW+c(jz~F4E1zeVfpgp?7s!6vjBec(Dd1Y%YET6lL z`A1gh`_s-7`P0;Af&Ux}e7^&WuO0ecCGY)WijA2!l#)@4D-0(^n*XZ zc+c3gne;&c{28=gyJ?`|?y4JsY8LK^d0PHsd8e>|Zv&S#)RCT8>xY25{RR-P0pg?` zibm8XHayTyIT>P6qB`Xg@N3i4KxN!`Cc4kMY?ZvzCMyKrXt$25&yeJha_)L2Gm9*6 zX^QjfMaRTlyvHeV!D@6A_mZYVkzr5fT82eUnb!GKY+!vMEIs!xLXLBM%1SD;h%IQ% zR7XiISF=1#q+rlr0^$=M_du(Bh6sruk>VLk&Z1r~mz49SLwT@kE-SP$KXd2H=!0{U_%zyZvOThN$jCw7BZ2d7LK*^o&E^hhekX@aIWa* zv^{D(rfGMy-PyV%w|&{kE2xgG#S5KYyMIA>FW2KpQa-DB^AjvAwu}{H zBCUqXX*o;ULm2XX?^D zp~HC7@Kv9Uf(6F~M5v&$wz1VttAe%CM~bzJK)DC1RU6*!<$#h{_UI}|Ihlt!BsyRla+FXQ#L~1M|k@jT8ij^pJFk?0)O5nlTG;(FEJEE%S_D9}4 zDcOnJuS>vF4f%kQO)lh2+7ow;4M~rG02D1;Wkp~pB5-X)IGia|gG8!A@NDimBV@$U zA~mh5!1|+id@gHf@T`JSRK-OX7L4LFl(&aUcjd_Fj!*TGZI}YcaHzYR@MXdB%vDh> z79byUmdnD~Q%Z8Er8EGsZm6Tp74cK(p{cP~OPH&w>0D-7)RQn$g`zbZd-ePsE=8%) zRfW}e{;uzq3HRu-)RMzoPW(O_UO@xoYhU;39FD2J@3g>H&Rl3oO}alsSwcFZ=r#~V z+)dI}Qm30o*i0g$z;&^5l6cVo4rj+rWF>;Nx>*w*R=8FvT>%`eCbEOM>$-}F z^WAu_jyr${olRU-v{B<&`Lm+O}*G}Nl zNO@x(?0Ovs$f0b3yCF?c)tg&IleO4!VIq_v26P959w3hy{tI^9hzp3&y>W)P0e#A4 z1J^@d8{#U+!b(?3P~vGks!{}^%k$RXoI|Jk#*86G@Zh8eC!dd(Vgb@c;ozz!4C z3sKV(tnLEp>?1tZZ^LW-FxQ4{6tsIcC z$X+a2qKQALl|+I?(EsJn=U5}TFuFnXjbTE?BI1fRV4slVMllFw@Sq485&XDGC7XS) zn|RnCY}7VtlS`5AhdV9X;5}@MHHUq!g?9O%sP254j_;hZXV__oyvNPf%|1?P@&&|s z!x-RoX8;a4d1@QAJ4=+Z7C;ZftiY@%OKI6M2TF6nC5(>jVN&O7LtR$uk3aPq*r!bS zLlqq|6<`8}@IGBu$8m4p~A&041n8}IFY?V`84Cnft=m88hvO$VdTyF`R!hv z8O?_Yk$0MtHQ1j%x3@`$j+u2BT|^|J-dNF3Xd9fi==B4rE5wnU-|Qp7UA*MSur}(O zTO(Z30Bc!h+O`Z2{!>_~UTbnISQdx73Scec0x|PJ_Xrg0y9g2sdYt1qh>x5_8f`Pnb_pn$uR?Z3*j`CJztL z8xaGED~l)e$OcuBE{MZNnW!Q=<@P z3gAehdS`d9+i9V+SsDFp#6qBy+$!Mw=xReq1Z7aS+IOle(o+jyL|8)Su$hlyutYBo zu~2RGkJ*=Qm*HzQ+$?NZb8hs|bb8PYhL+qaX$I~nOEh9$Mi7!c&!R5@eWl&CRzBst z5!4E&qZOz(4TRUU+|YU+eXG@^|GIQ$cp1G5thUvqS#4)EoMq1TZPBp^O){Kb_?x`Y z8bR6og|f85582^HEI>4EqM7WEdg^ueME5>;|NRfX@xBLM8$JBG2OqirHPNf@5jVT8 z8|VDoSkj%+1+4R~6@7wLb3h4K>hWZ~C6fCAGi~rz7PI_^&-qy*5#u&QMvQKMyD9wN zt~u*viS)`Ztl_FcjUVmw9*vtjNf&lgdej?#p5JMT>g;cN(rejRq~jlkaxT8TSE`O6 zy)@od_XQQZe7xG8mq#|n`$1&m_1ZIGt|-N>H;Ag7Fn{v(1t}uEUR|Jy&lL*e@hTo5 zHk)GCTOtd(ffT!5@d6B6`zx{JsM=1^yTu{WvPnHD1X`dEEdlGR+dFFPJ~R_sNMRylefP9p7FMU4CPf1CnFbM}` zxuq5sSSr@f<#B3qc?@oHE#__?R_$0YdQ8Jey(|!zDt-gk%`uhoBu1{1o1j^@KvJxaw6?XZ`~}&4K?JvQX%Z&GuKTZie!fL?FEa| zRp|WWR$pE#HmADge^{^Is!;cr{(*^+ZjOfVAvWas9S3T8g%%cH!luk>YjSFNjBH{h z=3^g{tr$#QJM?A^D*3Vw>4kf0M5NdLE$h+!&|Dj~B8@Et#5C4me1$b!Mak_&)dFKIP7qH>sX2pY0qe|Egpr(#C>$TI-`kC8^ zZ8q^g)>x^l2jSk0hVeOg^WXtNvq*V2+TG+o*fTV3UvG}rA3wJKil*q%?eMVCR@E>- zJ@Z&QRmu6k_f2bKaVv(U%2Mp0I&Oz>*<^SjNiqpz%GFs^%6UPWIY^syloYaNy4UID z**5uwnNpq!u9l&ju}Se5ED0h)v`~|Vu}1zH`4|1BT_h3lI?3V*wwzTMCUhkAi1j&~ zMqccimOjA&R>j}H^;i9nyW*Z5zCUf{WkB`ki`UP<``S(ajTQ^Vb;<)Bf#KLL=z?W~ z2x!-?UJK#}0N+ZWBVz|L9d(E1x>N1r*Kxo`yCK4&BL$O&Lkyb94x<5C@_;xRT0JCr z#wk8T4(|IvbPXeoYiFG66jdT|E{3R~Q2A_V_c4n0 z<}~B(=DT#Ch^9^-JHzy^M#j7TcA9r1!H&BH^#zU)XS4H;C!W&QCTwE)**)7*eY>g{ z$1Sh@wC+|ahSY@+2M&)YD7Osk;3H;P4C#;GZzx}{nw3i+ByVI~Yq9^%be0ui^oFD& zsdK*6RNj->VR+R)Pp_Gp8C6yAd+A@4>dpaTsT#`w$)^Gz#$fZ>O}}NpnQX-n4^7sr z1Z|f=DIMDqatN_5TYWwPbn@_F0|RmDY^5DvS`nM_E5knbQLi04eiZ+A;@I(*6M}bl zkG9)KFX3NpRTZUX;&!_Z)%qNAh~bduXfS}N;|5k&aLW{(BoYx5BRcDtnBY=*-N6t3_;D; zdCf%>NqcWr0TBRK`gl|1 zL7|TW&m|pdZQ~$0!~@iWcoVV88?e#P9&LW}?^4nxZva`bQ*JzFFv>WbnUt;;q@vCn zbXA1%nxZ_|d7ZlgD?bl*Ui|~o8Jq0ad5dI-=-SPc363>xa|=UWwaUneEe(>6A&)83 zXbQ?Hbdx$Vi3TjHS-iIim9^xEErMgqhDd`;N7&p`(0dtmfk!)Z<4KW(Q_xyrLc!IRkxY=r873Qn-7$TxW@xPR$(kethoib+6 zN!60-mp#W+UFvB+bZg4*P7A6%=hUL{CEInC0wnQ5sd=1FqXYgL$Vz=mu z&IU7M7xzauNp|wN=sFzR$B$tL(ri6qR{r2lL`RNb|Fpl?Ko;=iB8nRsVIEV*sIL2z zUE(*17#f6lD|E0a^XXR>QM2`s=b+5+Hiu3o6<#jd_(W!@3_*;4MAJj2j7J2nj-fm? zCZaY||N3%m&r@Mhv$Jti70>RR@trDpeL6@iUv0TCX?&U);23aTyXk^PXWm+SFjXv* ztcM;<2ICm?#TcIj8^w`h&7xEIWUEl5?+3H+$xsZ1uZ%(a6WkNCoah_+FXPjf* zlU&T~2IVz|=ypJ}F)Q&u{4__hyxi0kUc<%wryt@LKlZ6kL7mKSM$yD9%Z*_>6W ziUcnIhk~ncbNY5^Vd|kTJ5h{_T(68VLmt;|?rHk4gm#cc%}yv%%3Lo8EzimF&w8Y6 zkfyiTaPHheviRlgFqc zOz>V91(Yi0)|%Pyl#wQQFaI*H)HW(PQ)J8u_pUwG^EimF-hkb}cmCYd*$`feZ+3_( zSYlDhMjZ1IB86s>BR)dKSW>*7DjB$se_f-UUew9!vWCPkV&5HkW;<~z5~{Olo9qoY zPM=XKGRG>Vqb(So_|t4%7fAx@CCl|govQ9sUpTPB9nBwwO$D*4yu2rSkZrWT?@bxiQ9UrF%yTaaw?4KL1h zLac#dl+qWQTufTHmL?|vq;>?fz6>j*hd0NovH{%?21)@ zOaYf*@3w4?2Sv?Y7S}b1%~TVbvcJEsQc>~1*7eA64$X^VkpV_%kDTc|O0zdgtH9Ax zSO%AgsU1<9v0(`sG=1s=8>VPktOSMz7N)dVzSxHXj8`usTf;6YsUC!QeF=CU@)1k^ z#J}K>hm+iELyKb?{96=5b6V8{;I-rFm>Ffg{%h!=_NHEhEO7q5u38DpTosSZ=aw^` zX}5QtxM<(0Hwjx+apfof$UBNN>g{#T_lFKY&MUO2oLJn*Ba{L;pB%j)rzEQeACgrq zPJGCmO_wiqp#Me>Ii_*yjuKc8`x~|M@u0QCvRy?oivojW7g@DsX++m`vB4GZBF@?T z4Shfy+ZHeQZ#-jdmMdC}SO>8w@-(~Ba)ep!Lh%7TR_&xGMTZ85@J>B0dnj@U^Q#7_vJu+a`CTj(0?-fB`oy+Wx8K96OVl3$v_Edh&ZMYircXT z1?`4&>hq>da0V$}(JQaZI_~TDn?(B%;#cG?co5Lr7&`jn+X^p;iDqln8gSs^szPyV zO#``-&LM#?v!ylBP=h#;;W|Qavf3!r8@jfkL9N%Fl{Pg(T9u`faAqd|>y-#ByN8n6 zpG0KYa3{N36vpj+DP(@adgvP+>B4}s?iX)FcklH3^f`L;|H$fuGu8M;xU~a??=Ux&5=Pqar?Gm5l`)bO0CH;5`pVfU(N0<+9?`{^g+~LaW7?7-wOZK(%DkX=SZKUz zh^88x03QjI>0?otC943J={8SfiUhG>K150RHRK0(tEm2H#c37n52gbB(WH+0p>YXi zUt>gS>hu-lhqESSx2LT-=e7W~3UYX~ax^~$Pws|@2qR=NqSIzv=*ku40F;BGZUq*o zG--JC8tRx8fw{p~SmL3937vvyitKDyUAo#u*g!_N!b8;)H_B@zKMuJYo74o~dMX+R{yF`z=1B#iel~}=0D^2Z`H{7CE9y~IZRcTa^}p<_?02G$;sUw~2T)Nx zq4-)8H99OFiijpMiN(fU`CQi!HcPABIRBcx{sg;Qb{UgV~3zlQ^?h~11u@v1y zbpn;pbTg$i!$*Ec&=+`dlP*ab;Ix#q=_F@jzp!LB{CA3rfm+OAsFE=4n#3;T3ndR= zuW@MKRF)nVzEbS4wrT1suO=IV?$MH3uiX}>!}BZ)Hs5&dq&3+PX<|twhI-5wVkK=` z%~nbfOEMnVi{&$?{I}epSTGXB%4zPZN;1tKZE$JFv?Y*rBT|92IV2SE49}Fhs8h%@ z9H6|L^}z6`WyLL(LM(KAr83Z0xB5>>jTMMgfXH&D0(&kQGL=0%X}kfCTaAQfF|LD8rC z5%hQz`Ii}ww24ZMiLbv^jk^|;vaQrxZ)6XmhrtCf9qh7@uSTy4+!NL>jblZu>Qm@# zAxB}SwA8}1)vHQACb8Udv9ah1)XplamII(attyNQ|LrCS(&E z)uMljic{Q947h0Kp=zBrZMvuKMRn1D>>798XPzw|ltkTi&q^@ypzLCuOD?5YdaABkB#uR_kGyd7{WhYlZoHi~-uSxv?tYzELs^zY zid_;M;dE^<>XBBwIqG!V$mF0KroweamdI+G^tK`7@513$$OXkn?B~K6LVO`-(6VWJ z+=^Zl1ogzI5dEX&DHcScocUkqE2>rY%_>o>N>GcK8jaIF7lor!uJNqOi!oTAO}&uc zot9sJO?s!ksN?VTCUy#J4L7sW|G&rAu={GWE zEysf6S@JD6)K(rQ^+D;=DeoW?Ac@Q%UFzAJs^Ty8?eRT*;w7fc?P@A3s4hKRik6fm zjl+Mo_lhlTPWr^7qVY06=IORIkK?^*zRjGFB`76XJz0Qa@!D~4ST-N)hyH{UR z&D?x5dcsaT<9Sy z`-hMPKlKspuMux(_Ip40L4Kaj4?KiWeoCC6Kl zTWV3A6L#DM&uH^fjsq{JB)jlFtQNyKB*xo>7XcRawvNNa3W+Q@vFqBaE7o8FCRF*X z|EyPm=PUn8EY)jOn0ft{?`_s@Hr1Jfo)YE1x^ZN#zEbOB0qW<14lY$tVG9h6A4Qv& zlz_EPw$uVKp2d z*!?)+#5$a93)IgH+1`iH?1t+obfS*_6Qx&b$7?GzQ^C>-0)Z{=omFksAo4^_ z1)8sSv)^WC`>|0nxP<#tj99En`@Q%p1=mzt{W%&+xhl({tC%~it<|!WmYcshs1I9( zC+aVjmckjQ%(X0}K%~~~FHS%g$;~K2is>8%4%WA^Ql;fbTL61q0>ID2RG$S!+E+suCnVG=|9l{L_A2;H@8b`QfPFqw$ zko+zDADpRr0D=!rmFP9Eri)GSht$WSUJO$gio&B{@oBU<0-Fc(hN4JZJVtLiFz=*l z>%l?X>f#8%>n}b0z4xz0_#e0=*Km_+JKgDQVO#DL9F#N$6oIBc=zxDdjsma2qs>95 zbuLvcy$XTE=3x)}rrApx3sxxacDmd0>azpw?*+ z8?3V=hz-u&LhSEy2&}+tuPm!2NH6EOMM z2pY`RCB`SIa7N;XRY{H85^AK4cg3@9RdaQ*^oh3y?rslSYZLT|V4dZ__%p$|+YsNj zARa6{1H!Sd3X|Hl8%!KRhJzEtc16EQWM+Q5+*zC|!1^PD$%c4|-o1u3* zLz!DwJzG89-`au}UO%>ahN3<&SWRysGshc**<0~s4mSj=N_ts^+=HmNF)I0w{7Wx+ zNs5bD``fUUnuu$1D5tpSq7sZaBO_Dp*mKL-9Vsl&`y(H7mdGZSv-DNPCw0oy#VIO^ z;j~X09}W8ToX_e} z9W!0*Ye|5qgf@4y_zZijiK@NLNua-W*xi$KdRIG-v=K3c+D#|% zX;TBIr@0G7&T8L~Vx8Y~co#QyclJ<5cCSjMjfi%#uxrVDA-9;`&3x10sgCcTqCLw} zNAagRe$OjDX%A95Si!=!Is>pYHD`6OT6)ho3xWJ}$R`FiiQscl0~rbUv^X4ahLbce zZV@L_AJ2V(L)hkl2*>7<6s5*5D9+I0ZmN|gKD()iE>uuCKNK^evQ}&=w`*dcF-<^F z>~9ee)}lwjUm0Ic!{mrH4~k}Dm13Jy_OCW@-4&4M&vij(!lor!JTAk+MdDviUSEEu z)uNSFKkg=JE2(pM;R-BcZVdljp_$MF<3@5rLQw=)FyMsFicpT+jxmjFT(Iud`zm^1 zE4B3+PAbt9)C{a3S?>#3_sQ?X=}z4Ywbkz-L`1NXbd~Rem$he8-QMoSmspG8$YNk{3g&N@)GUBVIV3(nTC8m0N02#ga$^B^5uZUFGO}c|}Foo>~q|{2clo0)f=@ zWZU);fF)DyFMh03*Qi#qR8Ks1>C7ozvkfn`b|5_Y5l4vbDwhF00Q3$>WkWE~s-N$+@x{Xuw z@xcpKcs7n-+5Xu_|2+RnatDz4#TFHZLbwQCt*=?nVb-~2nOpyou5KZ4SMQ4HxAM+; zr5_X+uDVK=z2R&GGy-yvqIqZ+0v=Pka;}b7xSl27weh2Su8Oxk_0}@IIan%F;j152 zpYp$nffx1xG`{?D255?v0XJk_5PVEP6lav7(>C@QPtD^937su$VNnT+9K}f~I?@i! z+I}X3tH}Ov&Rph{(P?Rz!Fh@{dXMM`o_*p>u|i_WG`cyEUm0I~{tu=|P40qwHA{Px zw2HHBiTgB69`{AXxXk<^SZD6&b69El%FJ6|$Zg*yhC`Yda*NB%`zqJH%+zUq%A>5D zp`3zuHj!@-ndb&*kPp_;ZxiNRz`Jutkm2RpqAWQw>sF!p1;FiD5So3K-0@c>5&rQX zjZb8|*E}q@cbAA}XyAaFc9ZeSQ6OYO|DlG#*+z56NcEAi&W&Feoo#Mk)BXo zXTi=M`@xDE`Y2xU;RkXHnV*?*2(U0t7!5=|o{EFkk9GMdu^xrml~c@uPFi$&5K_n! zO6O6;*c#lMi1?#%iW7(=E!gBdK~Ad&5<1z~~5m{>W^1r`?h1 zd;lmXJjdiUu*dmWS8aRBr=$~$M$ANqv0aD?7BNzKZ?hwpb(*)tKK*y)Sf=J;)STj* zYP(h>9x%%%4y?&Z;m3Us-231|uYc94`yPCt`S9JZyXW<ak04Niq#g{UcWEH^dtPnZ_(8Y8~^Zb_D*in+P(U2L+;gpIFwC zn>flxz(62~Y9wgQ69P$jie~l%JmFugFbViCD!>1|ubF;;F0=QpbDcE515OW4A5B^% zi_IVU&%iS4026DKVw&LFR$4txevlKAHQ3R3O`13o)Q}pVR!xR;lkuE-+|Md)kT>Hx})fAFnJ`a!^ z)sV`Il@wRSg2H1jo%u?5ldGNt3jLG9TdoG;nQ$G2EUuo}rL_o>FIf)BcCv<1;SCa! z9o2m9AOpa-(OdNKP<7ZFfpds8<=TjXdkCi@cVYbTrZ6%ABm+c$N3Cu==nO9*`fa$= z$GOqXK@y+iQX?Ewg$D?SCh(dpw77SP5*mvDEK*YJ$Xd06w?wBNe9eO=akom0%XIh{ zDsIl%=_3Yn|{ME6$U#!kli=ncuqo zxNS-z3^B$&QSW@x>m6@GVqo&}IilHlRW#j{sBAJ7WYIV0v;s#g+SdkvFdT z>Pem1fMe7$bLQ~1b|1l;WIpmjan2Z|hg2hCMJBocXQs*&EbrNIrpD=Zsf~$~lgsN* zu-o6Rujr3VaSf9POY}nN!w4aCmf9KgNfDJNq^wad^@^&~pP>T0E2#Gv^;D^D-~-#7_TtXG@$yVvv?%|dS1GDT_((L>@yyyi^~Ki+^_ zg;@>JV~ApHrYr=CRhvlC{5)MFj}a2px?;xalekNu{AJ8{uMT(lpo7!?$;PqO2-$1F zjclhGRz)I_TSzSdWbJdS)ikAjc@^5o7RK_FK^t%Pj>1rqbe-MYTtJEIiY$I^nOmA! zR-|aY@0-8>nXGo}-;5b9vZ%_VeHjYRCC82mmSfZD16II0fP5zuMm3sHLM_>!x-I$=2@PMs34?F7A`1EjWj7pq9Rr+j~PvA%y9? zaol@JF(2~fG4CaNcAH3K-y3!iD>q2P(@^_+;?{8EKi4#Q zs6)6Y4)sd4gkt7zywXaO=n=;~)ZtjRJJ6a|npo%C-6MsMcGS&=9^6hbT{j1{w41=; z+8-uqokvB&-RznZQ=mo+bHHoKEjhvs?+mlB-t|OM9O3;H^I;C8=Bze_Jnmu&i0N^F zowm-ncwI1V=-*;N^;O`ee_AH#%T?b;G-Q?_?T)r_j=yAM%H2z?Wxs)#UUqxSB;{sf zUQ{9!;HUU8ljie;pL{IzF^vW!ub-FGt%{@GzUl8pk#Sda!@a{~r?0-Ke0O}5KcsOz z7p*~#1~qjXtX+-So-XRnu<-FG06KxVN#ChXW+312h6}E67oByAt3V5x)M{2iu{)Vx zkr=;%=N1a$o;0wkNaB_6onsI#ZOlHI10s=5I3hGbB&%9unS=yGE!S@TMoliIs~6A> z>~|cIF~Y~W(o0YR`|OHn*}C70+zDQL+WM8_DBB>5a~z6AVm&0mgQs%{ogeu&$z_Ej z(d|vrSdhhr6T(umI2#`x3I3wpbuG9*hj4@TE+Nsv1vnA5 z;6K(rQ0;CE`p7k>30)j#yFSUSA`d9j)}}eRBt*6Ffyfuib|N4MCCR-RnZAU@?WEI2 z&6{ty)sbl@LX703Dj$3i7V#cq1Bzz=+ku9Cz zX){in?M`dxGT+s#Bq6i}>n$v^75AnZjU+hwJXNH0WoEB@Bq7+o;iluC)XX$@E$iHd z#xU#(>2p*xYy2I#ZT$c2y?c;k*LfdCkhUvEs#2vmQIdb8#)9O`fU`4wZ@<@ENFV`H zkO+V#KvMJyYTV~cb9=gn-95V)0Bh@ENseS$S^&0VSr!SIB1IAeK|BbM07)e&$F3-k zl1i$mQB<6ANpZ@N6DJkhauO-|edm4dJ-54W&n(c5!IFjDzW1DS&pF@YeCK;+MGQV9 zL+BGo+}Gzg=sOpGT6lc#1Iv8fM(Ek$0nX{ah1t3A0Ovkw9DnWYM+(U;iNV>=!1kMQ z^s@7m^IDGeWOgLZM26GRF&)FWfz!Eya_HdrbD3=iEzOBB5(4U?va9VRCL4 zQJK{|x^WIV&wl0HCOh(oFr2_SlZm~SEgoPXUBXOV0)QiqWx09MF^7&_W0L$^JIG>u zAiT$D$?^||!9i>^H!C&Dky)um{7^n7dJusTt1n8leqm z8jgl48OFSmH1mP%87i;l%yh@U#*nmBy1eUCp4rT}p4$-xnMs`1>G@D)x}BBgEasf~ zu8o_ex}H@eeRbA;YHWS&ruVsz#|#9xzpmuA^f&3ZxxWshEOy?Q@0rqj<9&DBe^-S? zLToT)b!CGMtToxP3vYhc4?l3%NAA7jLw1+sVeZXT)C+MJcYWmUJ3e&xU%u*MlUa3q$Q?c*!GqJP1M!M_n58f*Y;VlY6Sy8U`io3z&H}Ckp z-`@DZuY`Y?r=XeV-y8~>+4sy+(9B&iDd_!*f@XGkohWF9kD`b4;r!4_97XYYS2i3J zgFrP1+*na)rWXvxHuX5N`(!(;EXnYA9DczdCt}jUCs0|!c@56UMfZ#Oz1Z~vDRr_N zp{Zp02}LCNW}D)XR+R_QaJ+dQ^-6Dpw}5yHr-R*!*RBF{jLSnwUGk|(F_Zr`k2?7+ zor6004rdf~@*82GjxK?dZ?*{+c~rOU4+r$$VB)iXFS*mu}x@GpOxJ|Zu)%PUdxcS?PZ3a(AviZ;2m|Ujk*+l7A)IB!8 zmm0TUd;58VFS6*kZa3dyQ7k9U2(2HXW#uB$Sp)s0q7a`U%O;CG0oz9k6=Z;?jPD+` zz*`p3pn6_DSfJ-lv)ZZERe#*8g;tWhxE_w+?Sb!%cSb=Eeyqq_f7t6Mqb{omym^j& zsy8@9aL)ndOAdKR3slo=+Aw);U=ll(55ka1u@Q{cNJC6>mF`pQ_U_}9sCAki{t9rQ zA<}m=**qLxO-7rW^jjR`n^Z7}XcvQ2&XX4!ku-j6;au^zwve*e->STa4N1q3?DpuR z)DF$)G|Ij3`3u&o=$l{_`kUZXnQyXzF`X=INE^NqXWdWUT#iNAydtOen#JADCbM{T z)|MFD;vHLxTg>XQIJ;mxK_GgUk;6s9tHdFxQ5$A_5d6gG>w}qSj}&)b5E$n+#EVp4 zB8ho@(Wap9{O^MPMBg*U9!U*2gF6y)B&MhUVKPVKp=MYa7HRk8%{Y&=-w^wgwb?k6 z%zfJAk?PYXucS}kC{F3j*_yq~oR;AAi~mNtl3eZwS9-_8?s#}K!u5+(pHXmd7$725 zx)a%~bc+jY3-q)2=reYQFN}u63FT(opC0X^?)_-I`$>f0COe~HjOt5A$s@aWCgaPK z;o&aP^C*F0ko{}CKRkqsb9aA8Azi(Qy+S3`!QL(f?(R`d83-2e{hsg+sK9zT*h|K{ z_5?ml-~KjR%Xrtd>Vli-ye{k-`hsgfgNOc^Pb(hkYRR=UBxG=LiEQJ{2aKKYkDenl z`8fny!ZZ0wf+{)#RFUo{lO#U3T{%Zlb4<~W2H|js;Nii!Ydmtt)pLA|TX(jjW}&Q( zz@&G8?F3eAZskT&$ilv9e?Kz}uRh`$gZb2*U=qlB((41}2ZuNt5(Fe=He%64c!$~QEzWT?>Gj7u z>=Z3L|4%^lTy|MfYQa&ux0j3->kTQGg}36iLQc53+e2yglfB49P}>d~EXek}Tsokyel@5VPQ>+21de^_J$E{orIDhB~!3Ig00K`5?Tbnr&V;4F8n96LcSr z_JTq05vI^za^nv7k)pCYI64Ryl~{8k>IflY!@-i@CyaUoQ&_tDq`z$66N}c5^bQxC zwmxu`L4x04z%F3p0l%5-kA_Ek`|@Oxs>f|)yBTe6NMW-p7^|zx2KRBg0qV;qPoTd1 z2G==ew62UEqWt&?Pc9Dk$UNm#8i1TKA8kv)SL=4`Gr>yTzzq@};ldc)E= zhPilo!_d;77wYq+`wQl|bbqz6%kTdQY`{lHOHUjrlCk#5F;7!Dd-h7iI<+&4Q~c|D zWIb_$BkK)1m%iu!6&X~-gcD$tw@QGiEP&Sk^zixUq8^ z{Lta~1}75qAy^h}Bx#lpnfOMM5^=x2t9sha5LZ(M_&-Vp3>J3DkFZuJW*- zT=K;1#XM+baED+8-Ovx&osRkmJb;rO_QnOe@HnK8}#1I)R@ua3w~~0NCcuiNIrxdHhggY%toePjVR2L$z1@)5LzU zVk@D9H7Sux;xS5zH5w<6@vQ2UDtoiKUD@ajFzw9^8ipbd9{9wE?_z(`@2#!JQo6=! zFtLwgcl5Ub36c5f7C3&hpkcE)Iw0$20FaGkrYCc?EE5D@m0T`HS6j|EKtJKXRmO?z zPvzynKe*CqCO+Likbyh~M`1=sICf0}7mr+|!&zmO%NH^a2u^{Ah_V$U;vXOW$bBEX z`_8*Q!u~xPUO~R_QI4Nr5(T`3f=Jkwt7s6$NK7cqWG8&Zl5y}~nr$dPVUBlVZXwgf zWyzT{qZ^p9=F?YSmG*(`x5?_uU1n$52j=!Vt4!rZBIMj2nw;ey0=G10$u;HVZ-`)7 zdS`)1Qab};$>p$8%;NqZxbNeY_uu!SkKS|d{gu1#Rp%-f7&wYc5@%;AlZhzKNe-VS zar@gsPN2hAON%IhWDk&$8aY-G%d-ZPCpc!6T`=zf^C`#?vKiE@Ggn=y+uBgtK2tj*qO$=o&`+JNAz*Z5Z|c%p}Ve~-MYnoNoRdx*HcgWe+u94{1*M3R;T`<_*{_R5U?G@09vD&{t$gG<86N>Ft4 zvSUyRM!i|fNBv_kyvh}?#{EcY^+b7;{&0A>)5DePVY*6E zDnhzVvZwuIus7M4vZz3qI^jbgA8}!Ee zxUQ;|vMm7PXAjIT(Tg$i3A2kVXHi1*I*G&i6N_AaUe20kB=`*JOM&FHtS?Xgt_*0; zvz;qJbaZqugJFq)_Jw+$Rd)4tzB`V+G?|r7^ikN{#c9q4tNIwj!v#4N-)K$gS!Vne zpBfE6I|=rXA}dY~u^Z#=aPZ@wW4vd)x_s(0UzJwkJhur@*Yp^Y6~C)Gt;F*>omKAi z0^b;W2TjKGe`cg8yX8_miG#`2HA}0@2u}RELGpz2`pZ8{;>0J12;|<_wk!f9t=Y2D z#nYF(?qKLz$j)#hl4~HPw5da4X^)i%uz5}ZLrAB#a6_3xP)w55qh(5zv5|Ut%=n}D zjJfOJ2l7UyuHkQS%o!Z>$(g3Vg*97mi0t>3ALg;)J9+L1t;-+^?3xVo8m}}DKVThC~|(%8fA&9kwG)?9=;W%@JBc}8G_*h`Hxul+l}lx0Yw4Y@ibaHW`R zL+ypc+Nkmf1wW;mpcmcYh$T~igm!Sq1PGzM7L}g*!{{5VV&K&apQ|o;f((xOeRvHFbz@TF7px6Qc$81W`6WI>%UfW0k+X~> zP+fn5XQq>oApIj189&Bw8&{L$a;Da}nkJ3KL|GIy?;ZA0=NRH}i8$EHd8@E)ejYCo67F*XB^G0kdK4ac^g;B8?(PnyZ5%DOZc=^*CJ@ob?F=ykJB zo8GQhWq)h}rX{=Pr}t@o_ftUfc^H}_0zk9)2(mWlJyedPEVr}x77kK%$Ov+pn|hQx z3J_}naWW%v580~{p210aVKRvUHk1ugMkqD}n+jQihl9%f+M)@JYxgZfDW>yZ>Y!Sjxt9$h^vg*s8;k3nlOXc zqmLRNxpr+EC%ayS6us5pdA`nNSSgRNhBQ8_SH!9e+2d8-iw{^|R9&bWE*paiqH2aC zcKumshPy5M{9#3gqNLY9!4QL3O-ua)m4V}4T)CQ5nC1$#32E(>kgVcVo^bPi`p5Cs z_o*K2oJiD9THr!k!n}kq)G(zlK&rMjYzup6zO=x_chD9~UEjPt3x;{$ynWs`&)Xkm zP^gk%S|qRAqBL(sTXb^N;eu;7OeWaB0Yih_Cc=RqB!I`(_H7lR(&-Jk7;3TaDcm|u zlwu?2wnO5Sd~5B>DIk>`H-pIntK?h9SBue#aE1Ob`f>}M=GBWeQ?&SoBH3>32B2AP z(8UlTK?7uG6X}TyKNr%&R0+hmfhF$?~o@ zTPMTv*JHuA--rbl6W9#GQYs3Ys*0d1o?BojIu;-W-iQl$+`G~nLv2Y~8^r|(i->b% zWv2DHecO!0%>@s7H{|Ml5*EtDvpmV52(+!5R!Y#NRMG@q`m>BGV5Ycls@5R(8;2Ut zIl(`x|I6xj%p1|xp3|^K+-v3{omZagn}>2DmEWgIA*e^i2|$YU@+FhgxWw&%$9xU` ziDtdl8)uxaw3!*ElH(}{Jwtz{ViYA9D$sg^pe9UM?ege`>{*EG@csAS5BqbGBAp7I z=Y}wu?#vOmArh=GGr9Q-GuR8bYj!W_fw)jd!Qli}Cj`ZiL1g1n^?c{SN9)(l^MCmI zA3O5Nh1@@OHu+o~3I1(G=klN&UHGqc8|ov|isq7i$+52cf7JV_C7rd6JwdEm;F`@mTGRenTt zqodJ?a^ovBv~`~)IinO82jl|TVFBk2(){jo_0TFO@eNkiW z4w8f2=1Ta4eCFeyoqB8y3n3iBT;Ru*@iQvl|1I`QI zJqeJg1i}{cNFPHAL&RNx8xnl!f_^314@ewJMyiv(oaTg^%-j%Z2C-@L(vRM8{x1jT zA0d%+YjfweEiO5c2YA<(#+Z#lxQA~1$d8~M?w5KEw0?|fU(DGp%hil2$dwGmWhXK{ z@i=NFIO}bO=$F|e_Dw`VE^Rzm(Db@toIHq6CB}kJM15OA9WVO*AWc}HH ztoi9#tBeSlX`VP(__Q1xKNEg&#$iTr3OeIZcq|hj*+NwDVOG?CrP)h0$6m&t>a((D z_EwCNwD)ikgDE|Tb%Yh|o5672@j#a06m{AhNBhXQD`B@Sk_@3{8`#2Nn<~5Zk(T!2 z2Iv)*AC|4^A|muL9t8rk-zI0GyEJZk;5R4|2HARZgTBl|XE202(}JQj)SSC2qC!-v zCMY(EHmzxbJS+VkoH224vuBJq8-|KhByv(tBXp@EKEWo$a&6&4ZKZKCrpx`31O+o~ zr_qfv66l|oHrT%ncRBT?u&=2EA44t&Y4xQh6r?-CqOr~a?B9de~&M}B@nN5%- zJHJJaZgPCpz|-80Yhs-Ke=b_gbvPBQmN&Dv=qesY;~)Pl33>nJ7r}a>eG)tOf8z@f zClPNqm>{-al#f8U(%-z}_kMfh1E2Y+uNCJe>S|$4b7q^Y3Ud=V`@Th0ZmJTwi=2CA z5Y?Z|A*vg2x|KVtPHzGyKdMSgV5fCb{p_tSFYt_|+@>Oj7kH-qDpL;6;XU3>CedzY z+66cCIX#%*_m#|01|9soqJvDE&Gcvx(M4?=p@MtzLZc6cAche#8STV99An^*n;V${ zaE0D5q_T~z%!mRl+4X3-Ym3WV7AI+dh_r4uGn>=G$Y1=vGGDb((_y45n(o=d(U*(1 z!a&wn6tWgI&fu6*vPQ!I8KxuV4J`2b+BIlHf!a{yZdV3Z`aXV2oVVTyOhSIgg6`xB zKp7t?=9R{xzYq(A$>Qd}6l$NER`iLVoo=xixI}$uxRLUk+mxvwk&Ug3_giIToxYPT zf4n)p++x`3}P){(K-mxLgn9ofL#rxfNEwB3Ytb@B*;v5}6I{-&QOd!mEC z>4MCH*ILeg1d`uN+ z>^cw&w72l_8GB%(AjHw@R1m_R0ILb{l0Zsxl?8ZM)RbY~)8+sMy1l5-&1|qqo5?lc zcuy+HE2RIVr}E+_Z9vc};_>E{ZC0Xpi(=V75cJ{UBQsJeVU|5Ml#;~r(3`AV9Kq;2 z?3e07RexEJl|aEy|3@P0jt!?BROpCEuiUr!;=IPIk9;o*5xjg~E<@ zrLc@KJvy~DU?>ySWK%m+0@KAyvJz^e6Zt-XG4CNA?_p)LG8~~eLM1#V&- zrDTxZ+YniU@S4d`2rm#?G`@3z<+fdUGi35C#H3QrDyPPuU*44It}~*C(9jgg9ik}m zyiR8Wm!&VU-Yf%=|3D#fZc9&!#ZDpm46);Hydv`+XYlZ_cLmuOKRL$bT11f9qQ!>u z5}EI{`sn*jsm92yxImpTy8}~eJeS`HjnA*$bc;ghd^_PBzYS+kWJemNaK2&{h-N7MM_sjQ3{#ryNGc& zD%7HjCXd0T^eQfmQYQk{9WP#mVmN(-n$mo>wW}c%dDsKfp^^Vwij}K;Vl$R_TKbd! z;)-;*%6tr*YfKPx6>GLhN4STV=)d|zB)G_Uch)u((9^kB54{jw&q8KBv; z;00ZEkL(4on`mF)0r?PD5Jfu}LkE2Tzi_4d7V7PSF{mSJO4=LDhBVk*cH!D`_qSCK z>ct{P)Tb$1-zKH!+tkyeXFKpeMkQf2W#NO2d7>%%;!e=-QD|?s3P)oo284_J>9x^J`5u7d5{txP98AJn#8Xc z+&}e=Ur+0_4vqimyXPt0^*8OaVvf>XcRL%nsFm(|^@KDrx@zSJ9mf?5*KvwRKZeL2+9n5q@Bnm;Upsjhx!1XEp0H!xMZbh;YOz*MM4+QEA$d<)uE{U9m zq9c!-6s!xfT2_8Nwad`Iyjgl6XEYJy;h6SO_od7AfBB11nT}@zJzsQgnt`AHwc@1C zma`C)?LPwr>G348R<>qi=(|`B4CYdNbPz%__pWP~1W$dC(2qOeT~eYednjD)YyovO z(DnbiXSSK8h>^}Tv*=D|15KrwMX%dH(QjxJ1|_|| zLGW-l91i=|i9WmO>Z2d8Y(CzViz`qhxtcLG(yz;o2F5+AFiyVQqQ;n6uuc_e$d zRY#d&POda^+q<+>ET?l?Dx*KWQo!z%Wp>z4`I&tGSIb5HC=Omur>9K;?c( zD1};j%$8=M7wOAaMWZ2fxbeoVXmoUY^JC8Qj#V4D(^a_RXjh0m*!7jh zoSXjh0!M&6i?bQdqKxs)k2lZdx5_}9A600RZ??8r^NxoK4jia^q9Y_|LgW>*KW1XD z+(LP-)9T|4FDX9W%}u>PJet{_$w^<$4P_wFZz&|owW6RbX1kU`6T1Mi;45X+o@raQ7MXz%gLqZ;rxx@Fnh}uz3i&ehyxDuBCi0}9Ayv5t&@zFs)CNlBjvvTz5Q!satviU_+v33MVj{gss85!w+Fm-JNP zqq~j?<0v6gTl6?7<95VISW_JRlz)uREiu3%%`+pVQy z)Z!ZQ{D3d`#h{V`GbvR4`#Z zB&F~+@eh(aW0fjBIUcNtR%`3}e1oH2n2lT_S5ihCF*G;2M7abtGXc*Y*Yz~HA92HQ=5z9U4G zK^+MNnNhuu7bJ&|#zfrNAdtw%}T?FlLU14mOaG#iqF7E+cr-y|7bY)?! zm~w`$Gm>1gZw%tWE7fO3?l;}@1!SUSq*>@H@_lDWtf=qV!q=CJw!uKyR~7p$YWx<) zCParSL;X|1?-XEc5o5O*tQ%vC`kpb2E!qYHV_#MnThzD=#@f8auZ1hszTSI)@9HYgTag?F^w|HZX74U zNY(NoVSv|0CmCUrzuc}+FlU0iiOjs8K(~3}0*wLnJsS&_O}nv);<7EztcVGqWMyUw zpE^SSBr^+=Rl*4pEBE?iDjml~89j1Fs^?Rs+#8kKDs_~3r!Hb*a{NUXVzt*_)a#zH zmIGv$+_(4hBrEZJdntVQMHgbUF1d_2IJOs2fC9h(ym1ZA1VtyfuO`W5d+@S5M6+X{ z-mSE-KU9TO$)$wCSND^Fi2(8ND(-Oki7L*uReA44XNN4>8$GB%sr6O*vMz{f?+T5d zAtI`1Kd4l>tHXJZ?upiLEn1kNnXp)=^-PjBSYiU+91j)xQwIVU6*%&!vO&lptwk9zLb5&`7 z2p4UGZ;J2CSsR@KGrJapZN?f8;4#y?5euzW34*x^o8Mbz!MXlRu9}Kbv!nKO!HZQF zE?j?dxrJx?FSKx-#h$nt_&*BACWn-de7rLX0C=QnJ~%`&xluP6jewTtJ~|j59UcxL zD8!6YGbIN3+HhwBDIt)no0OCgQgzGd+PNLHItV5Vv#FQ%M5E*BH2hGmzswb8d4c7$ zlyZOdPu($46J$CkHM%8r&u+TZSk+mj#`kOYB^fIgxt(B;gf@; z_TO@9gT*Gh^uQuV6mnd#VNR;@ofi=xCx2Ra_46+mgf1xk<2Xn`j9C<0xYwH>+n&pB zm4SE9gU1LCC97ho9d%>it(60$^Ccd~s%4K+?0B#N8yn|-kQ!0xNY+TI948YdBaVla zt4ZaPN9Z_!8#X0>g+DNfqm#<5Txm=HW+E`KUS=sHq+O9RG*A7)KPx~gL$m1Ob_@49 z1E`qaDvgS--SiQKi}`jrTolPenEN>C2?i*+IqF3lJUOPki>M0^OmJ;tr zH>;0b^3Hc2yi~=1Zrgh22EX@YnyPWwZH20Lu_rj4FI;%^QI4iOmR>l9FDN#sajE?| z#BiJ!>tOUnkR}_2d$@di?y_9^q zU3pMgg2BSQ&H$<8x5^}y-&LfNZ+9xBB7Gt9Tp3R0(S9)6+GekiCANa(lbMIsvm!cE zxX%;~r};rO@>|r(GTzP1x%Je4_MHMZUBgGvO|EW7WJk9*KfRiP#d5PW!A=hqy*hR$ zN3e7l$U!!XDUb+H9zH8ks_&^^`o9ZUxM9mGAtU8`z4;Nzh%}ZcVBnDsP|xp;6OFVm zPYT}^6|H~yPenXcHrtBu`jZ=B3k$qz=bSEYeuVi-W|ItTxum%c6idkZBRA5CD(dA5 zW6H1m>mp2nQ6NgXqXdEJ(9$i0DR!6D$CPidi#p2G+7mBOKh0>(v`}Bk3}fKUztDJN ze`@n+KqVQ+(SC9eP~BA)m40!f?PxSVhk%8lIY{&tb7hIdBvHi81-lovq)$-(cPe&O$+zd<+)wnVgMP7fsy}^(a`7j-f zk>7XWI-h1?XPXRZRGb040sg%r9=WgnOhH7qHtHA~W@EWKqTAW=tf2Xe&efZE?kPNX zHa$6_uNa=QV9LxfL9{R$ULE7+84iyIF-**dqa=b;?qF|K2;(=tw;*sWh~c=Lm%we( za0jjxbX|Son4S}oPQeNaq@G2(F%jscf^jwBO#i;3n}W6wqzU!WOx#IwdJcXU!L5dF zEaI({^+^w6+*MoO9^p zT0#+;F4B+T>B~hUYeaqR?YkDHy1=j*!p9swi3}#&sHZ$0cPIO!;nChcU3)nqvn*FY z0v^r=8&N5V!u#N8#mwq=4rxh_A5X zgxi&KEPt1N%6{T85ffc)^&9zwXi|J#J!0lw=cROW3pZkGeypwaq~wg{S5IqdWb~sy z!gvi>V86s&ou2atLWP1xRs;Tnu~aOxRI%*qug7KncYdruZ_jmBQf;4MCvFQ*rpxMc z5vhsKOuT@1%xKN^_L*S}M)B{$E#$m#=gYK$&W~G0#@iJ}T*>$%olejwF{aU_3&{v& zM#a@WKt|XO**wP;o%A?AC19(hfrBp5@=#$D)xJ|KH zV81w-F)aprbSpB4e0Y>xfv;8NQ%A|@m}JNyV!}es5>X2n4-STLvQv40ydAF&N0-Ny zFo^>4X=DzNoD$<9+_$J;U^Jp2Tg?9$?vGcIjx-(bRL%>>N23f@@^BI%9E3O(O@;no zpG5Xjs!c0`FBR?USz{r{P?CjaffKlYM|oK3ek$dAh>V-6yYa#}6+C%e#F&sXkFP2%DN1+BcICn8-UD89RdB^Zhx zP*Wr-84_;q6ER3smfHX%FzFuy?8rehHQSq~<|CQKBJ&~IT69hcjs?8XZrd*@}UynO>LlcOO*zM0TdXX#nwQ zkczTi5ODaIJK4uHqR13A?md#=hIYGbYCq0xw*0Q3@XS;df$J$V2{lXO<|wv!X1yUN zVCM`@{&gB5b7Ik_XFn!ZK=UzL%17!M@f@a0L^24mJ9NAg56W)V<>Yvbtye3gj~6po z6LoY30-DM=q4Zo_iAulaAK~(5n70IQ`#r>A2Ytm%=|JROa7J6FDGbM`<5)5?9LSI3 zY!#fdOY0~8;@lRsdf8F_O}il&cz*AQCfK+SnuomXN`D*OyR;NNh7{3ua29N8L}elz zg`fwly|QkagJuV2E7OO|r;dg=-Q?7^1W~H>ONJs3AkAU8xB%z-e%}fRG`}sODTmiE zqbF>M!d?j=(X!ZVVrm9hfIkp-M(pR|PM^X>-gONn7+oYFzbQz8fM}u~y-r8N1CpqO z1bm5&+Jn0A;p&6*CGniEO0HT8T{Hl6?DQA?am`KA7;jPGelR3;n!PgAYfP7+l=#gh zNcN=Eb?ymXhQhGTnqtVe*s#V+o3LJotKhHxh4%CoK8uXyjf+KyD(WYhd*J-`XYCUB zw7FTv4e%z!bJ;gQzMq@?uT!|~S%NzoRXTBTqG0l~akE3^hQa2!kK?}(6fZDAhhNaT zd`jY;#_u2?^T8hKS&CpX2o)p?u+)tq(l#cf)2CD$#FPU>nN5yx{{x*S(0=hN+T=XX z$Wi$yyNb!%ppuuz>U)FnBnjv$s2I7vYH1lhBdZtf<2Gi*F3IY)jQk(m`vM#dic-c) zd1NoNzJ~u9zFvyHuZ!gFg;P8wWA(58Cx3QsSb!?}VVf%Eg$1Z?t53C@U&7^5)y-9t zFHqmi>A_SuMzDYyP80F;+c;V{`*(a+7ceoc6J{|LiiT4i*{Q4%J6i!|qpMr$q9r1R zt)QE3r}UHjK<0BUiO;8Hy7<-a{Wk^96|A5J<*fz-k`j!Kuv^aa$klK4F_yE3@vdw3 z1t>eO3&YtLTmx#PeeLbPp|IA~a?|35P(o$^BG@poMv|Sa){J-3J;ZuCe(WGP+zcj& z)C{3BySPCz?Zy^+y1_gX@q;N5lvpL?daz?UKr%Cs@;H{k@1$tPtP{eek9y=dI@hX5 zaSsHOk!hGHE0B)lYm6!HEQUzPZowN&_}rkG@rIZX$*TN^FtKo%SlBM;?SkJEM-CQ7 zn;}nXrIwHjV4^w+^Wst^zAa51kc4?k6gdFKb55HDCe4~TZ?N#>4RK$7T1(OL2_|FT z6tGmPNMl|W_z!tC;J=n)Th|MOSQFrz&cR3~C_L>Pm=tckg78i%64~klY)Z$ED@d& zC{K?wlMsdu_C^x027uYw-I0?v_5q#vzn3EOQ+Qzm^pZ4RJmcKQo|EeEXGz+KXwivg}kBeSpDQJJerNNO386nPj- z_D{nF`8{mzSqFE?1-e~xVyAVQ{7_oppQ*fL&9B|owY1v_Bi-e(l<6|`Lf`zTNt{>i=eE#=NUp-_XZd!`!^KIx|_~IS(AYvWIpJ_M_jW?!6@Ik zGvnx930C>hpD4gPoq5V!=^}XN?sefkf)9yMi)9T8Vo6~7ssH2~smi@HNB+K?bi^%+qVmNB7e(fEO3d%XS&&5Qp;RJ!; z%2f}eAJ&@d|-40kNV&UmBhmY_Qs1J2%zRvE(X%Nl?=$q z1(Y=!1;?;!U6SsR_$JvV2JkH>JJ8-JINaaiR;Td}3(+UPJFN$Wev{hn!2NwN=^?+@ zh-#+r4(3DALpm*OvQ7udB)GHzaav4g
f@Uch(tYmY7mB7%eI&!}>c$->tmky>L zUm{oUViDXpqvvV-=5K`shE0gwyj!o+um0M_o*i@K0S~v}=Z($FN-fF@J!NZWY zvOLVNV9`Xl4qAoWz}UuftaerH25h&mxd|OMS;jDSS20IfrVbw~=#3uZL2x+UA5M6s zE$&2y2{`92ozyrO@p++z=j}NU)__4;7x=*7M+&Qjs&GKwQV=A-(7-?8lBvl} zx&gSf^wwBzH9ZAsP-OV54}d^$uQEKaN;<4uFHmIa3!*jA)56!k^4}C(!_>iOebz=? zx5mod^DJTT*W6oRptAOAaW`EEr@>$u4_6QZXVISU;JgxV!R+O60uKGCB9rWMn`rbA z!5oxNz?4tT-1+0fa#UiYt6SY)KwxJHUtcQN0|Q~dtaxuh+fo=yQkKG6IuJ>w%3+^o zw^^(uBsP$HHB!|4>QDYj0d{J=w6*9(u(P1+nZnM3Jut9Sv(tjMrLmK+>rKy2fBFjr z2&=V&r4hEE>zP8>f;})0_H&Az7PKveurB6_YHypHQXZ~sco~)n53t*)G^8mDY^?|% z{ZDT#aJiN#se6bYoCF7l`K#2HQ(5Qgca{+H1=j``*r-z$xf+&5MSaVbOjI7#`asWL z(3FA!sY*^DYF_95UPdUIn8ayan11e`a20v>x*jFHK76>WGks>u)knbR7%{uxTZxo_pH@5!&-?{cyXbuAN9I4$(~#aE|`eb7Rr z1^c|&QR>+&R1Dnu0fk%HMjXk623H~;PCnoduDC05<~?z#pu~ycUnS;lV}`qQV!qd# z9XFoKFWJD34=U`)H_PD%iA5`g98dl~1*X7Ja)9XlF5*|y-ovnEL+1&*6rzDL=4`hq zu(5HTP+UW<=p4Rql_Q$xsf-(>i*W@3#d3{HG`+-PJq#-f?!(M-#L2FS}G zbCW1D9F0NdK-wf4<0K;Esc9!a{Rbk5Iun4#gS{b#1{Uj{*Ld}b@I@gY>ID|ioVy_- zu`lY*CQ1EMMN;}bkCN|dt2B~DiTVht2m@j%>?$&7BP!6!w)zQgs(&M;C96CmYineN zx;%SNM&rb?66*#_W5%%KU&IXA;@7OSd*8kim6|FlOa)TE04OnCJ z7e^G1H%jU3rXn2a174Dy(F`_)Tv%kfAPQ86LytHCWs6w@BHt1`L|9~*>?X#fD#QmY zwOZk9wjQHKn;Vx9?au%8pbi=p!*Di06B7gOj1Q4YYZHZiM7%sb-`GA^IcNPw2_Wk? zoJf^R5Qes*F!?6vFBMPNSflBX!XyO}6ZjY;PR$-eZmqfb7o{&ErAw3$(WX|(^e)oK z@`u5aC0ff@TiP1SXLXVPr621v?qU}81w)mRlWV%&{E+vw* zC7XyYw2AVqkpplnJ+fqT1uxk+x8*`OQ{$Ocg*g7pvBoOz+E|_wzyS-h<;EF%x*)O0 z`4I-lQEVKLPu1936wi?0qF5kD)Zi3QCiLL{R3FpA2Y+Fp#$q@i7igmEn*shjBAl&` zyXL`O!G6&#my8*V)`aAOe>1^N%*+sBHlrJ1RL(1|F`1_@5U zM{lld-2cEw?!Nbf8y65Hd*?^*x#tsI@!%X7!N&XUyYEAH-ElA8^0bEZ?CyIX!0(Ry zLytc2q5JNz9`1BH^!$Ol@44kyA%!!!WPr*h7(b~@)h|9s6mNB4APsomP34tL)1 zz+HuH!J!grc8&3StO?wfD;X#?Y6@4)33mtvoe6Jzd&QT;M4`9f8hFmJ^%&5fC8J(6 zZxq^r!ZEn)GH(d6$?j2z6|-EBTIsP74u{C>Hprx~%C1ksD>Lqf+GZn3ht85IK7&)Q zc;_@IvttujmL8S?JUb!`z)KI9fsNv*Ct<0lrfd11|BlExnbEZ{-}i2?XB*1sO1&#LuWh21izrVYR)%(R53pFme+9ZBGdqzILkJtdbqU~tSYz~=HzBNx1B>u z);#8crhHnr|Nr$@3k)*(PueH)q7yv}NcUWRvkdHeP+?!bSq2TkQ0dO1aE|#4Qr&rh zVa$++;c)BV2YE^F>r>-P|Kf)Vv_IN0O)bL48@GPT(d{fC&hw6S8<-O)%yG1HqYkC) z1AA~F4w7O)VX+dY+W+?Z1>X3{!QtdsT^hTT{Wj}tQmW_b`(2Jdh zUvrPDQS7yw?o&ACZo4Tjow&jeuOjU)im@DYseVhJYY@;MVm0Lsq^qiI&E7#c><{<2 z0_og2o)1msGXBKysInhiK?NF=$zr*RD{Ka=K1M~9hCnZ5VxDv7b{LPm1NCSi zv{T^VcI6mjT^$ZKkoq#A8Zt=*m1R&@0i|oGO2@G_E%Fi^eAw)I`0%VYO`m@R?QqG! zpWYxHviQWC*-e16U@V*TKK#cU%a8xnzbZ&eC4&L6h2t(1uU!gFv^lanEtRw58qgEJ z;ewt-l&H1vB66DBiBZ#w&M`GHO~0jS$@O(24(R>_&XB6^iqO%G=^^16`wyomG~T?j zT@f*`Fk@4AtZb*RUG$XUBz1S-C4Gi{QC)Gxi1I@FMvD@E@?D>ehtc>ao~2mEE-R~a zrI%doc7NszP@tlO6zn0ncNQZ41N8jDXgHj(9ADFPcX&A2-5(w#;V8Mf`~IYl+#$PY zb6&=D?0P%?PIb563#nuj{k?m5JlP)(YCE0XF{)&oKMbPF!Co?^Zo48m`R-nS7zTZ~ zp$tEXoC=?%Ght20!)CgnK zt2_{dH$Q;ZdJ_0l<)Akj4M))S;7!~^-g?H&arhiXENeYJoL%TnaG?LI;P#5$!kA%Cg-R2qKpwH%+fc zK6!}dgDH&J?hMDM3Bx|gXR=*E`eot*NXS1N9Rw3B0sld14HQK?psnopE@K5+t1q^A zB+91|^4*N!XjJc2mWGN*w9nv44ZwBwP|os@tr%c}1}32TlEPYqa%%UYgbDw2a=4Fx zebk8&0K{!1sdRC^cPsRn0Rfb4GxNGngNS1G8KjOyQ7d2pPG4FS1E2U7->J$6DJs8m z7sC^dkDn0e81;M6W!5F^gVXgu5)$J=#C{JC&V#=8Nhvu3`b*q91ep@%(K15fLQY!)U+PkMUD}l);V$-oV~) zfIv>&sk{%82CV`=*jygMI#Gk+p_>8Z36{gaOVd3RYhhRkl$Dc4YiuVCj5(ob1Gz)c z>TE2QkYT7o-~lDG0)F8U=DB?{SUx?aUlWG1+iW%kv!*?X*fKEHBzApXaf0z3?2(1S$Na_=q!4ou8K7i>mOeZ0WNPxQI|Ctd{ zePcfXf($_~gjbh{42i!!xVb->9F8yS?$R$R?}Im}#&y7c@3LXUv@!B|KCvyJg2s7l zIOB+nN*R`&=h!Hx0sI~Up{afnmUksVQADvUDzPC*l1+;*>gJozpFhtz?>$7s#?tVr za_Qql9!!yK^_-49 zqbc?ML3~Vq{{6#)1Dw*6V?D~%t5;1J01mvx?iM?raG;NAEu65B^d>qQkMaB4U@nKf z^tdbXZ{QHUk|3||pbLPZ6uBV{%xh{12hZ5!8gjzXE~=c2kX<)8=p{SYWB~psd1Uv_ zWPBMEN=HA8;0Rn||B}P(59x~Ci`c8t1e6Z>V3Gjrv??SRg+-cmP$Gov$rr}NhR-uh zb&3qnFnq-jgv$pp6BwS&Zbn9EnARTvL6FLxC;6j`5x693zko5bvQNBFUR()}D<2U1 zy7L8~?Qo15FykNlJhGXj848g2o z6#WqJWaYoQbmHtp<10VK*8kVOJWhfU=$Xo5PxgO}^*|vP!bo!T#j~%u`+pVNgH$c3 zW5aeEOa9F}e($$_^V9Xe{%@Za5=NIq!RaS%7<7M~@uBh2!A~&Yd~UoS_>HD|I{p57 zT#e&uy%x0F&7c~0l2)@_O6cq}piK!z69B+HIgiEvdGfNxj-=g?^*f41%B; zrAd^8e%gsTVccn?^?Fm)k4kVYg)cY;NM7P<vWDH^H} zTmI%{waITZd#TlH)wCV7gN|401g%CbX!)%u2wI6(4I)2?s(w^Y{ARlr)LKd0snr_I zCNL%T)23go-Y{&rcX@1afn)k139O}%W!XdMCHd9N0EL+G3;+AdU`9J`hf$~9YVCb7cdew}3B#c7MP3@Dq2Es1jdtwU)Iv^~kKDC9W*AVI z{v`>Tr4WLy9AmoVL6|Qsw7x1o?HZ*JHLmZg9etyj2J~XBu$4y5dQ$g294wt`HHOrh zwjj5L^;R{3)EZWkxSh0Wso$(6^=8oW8c7sZJ6@-w7IMm{@q^2wMivy)4@w}F!Vh?h zUDf6ON?m21%l9qBg=>GLw(yO{g=QFo@Z*l3Bwo;fh~c$UKkCF$tr3Ma$g5$!QSZdK z?SwVI(P(y(YQt-{>$NDU;*#U3g`6@je1CadumLc=xHJZog8Q%2XQ@Xav>*G9+N3uc z+U=mxNjy3hAS+Zmq1R|uYq*Yruzf(c-2wu{VLM3LUINhLni>Ud-wW}(T5I|(wUASW zc5^vsPw!a@#26oHSG4i|bKZ z1&8;%u-$1xjo_s0rws0Pd2sWMUlP(N z*oaaO=& zX8S(9cPTK-PB1RQaUdC$zsi5TaEL-Q_^E$S?cN)W2CYsQRUy&0{HW%8QIaNpr&R+3 z2iwN|4D8;ARyeGMKK}1_+Frw})|=4ngmDUm@eO0_A1sdsPB=_IEFYH=5#ay`>ddC(cRFFM4ldy}>g`S~XySB-4iGxO7`i|Fhi-PAT14_d z*yxagC#kB1oHB>FdwJBzfOC3>1W_sEh>&VC=&0oS9;c}v*PG31HHf32mL^~eZE%kpru@B79{h6a zze%1N(zg@lLlH!V(lX@l>-0GI9B*U09DH8%aDwsWn+9)t+uLj~K6IlzP32;gQ$dld zL9^KoA&WO5led~d*sM39jBBNxB!H-gv%d;;U4o+>20=6mA?7vG5V9V`0KeL7*!tS1 z&3(*z68sw5F|lt?$V`o94+;-Wy6}b=QQa#z81@rcB*bb4R~cC4AbO%48RD9xY-JZkJMqhz*^d zGuvn=iR>cda$tJe?6yvDss>&YmR0P!7lB5@dOJx0hHBD;I;HNly;coZu4+4l%#~Jg z@4`Xcs3!HW7B?b)SGO9$}D%Vgx^loholTSIXs@;>Ub^N zb>UhM%h*^ZaF0=9-<&AoTP&}qq3ILDSKLg7r7#;w&U*A9)cK- zhz{YfJlLD=%ac7ZVPj z%)79R!1eXQG1iFBH^N%vLz;r|1SS$F*y1o~cy%b%IvyRq2@d8u94P7ul&e(;-X1hC zewgCc-D-z{eVYNh#ZE!{4geN_{wL)tjAmqtWQZLDHzU z;;LWs!ltcyT^vCkpZYTqWFL_W2vcLRIyfu@mbf@{hDy8aOqC2_S~a=n4EDfI_;TR? zM&`>XyGOSQ8f1;&@59U6tJQ;603*5wFW+{UdO=vNMzye0PazD}+SNvkzXG^T!15M& ztws=b{1}GVD7CGsi^KoA^FYk(sF1r9Fc;qlAB(=EJ zt_GcE?8N~n748t=^ex=KlL)?+%}yOAbEwb4D5`Z5xM4OTcvUI&0SOjmK)DE6(tav6 z$h5g2St7U<*}NeP1^sdWog!#DBLQT_S|h-EP3A4#N@_LuR6|A9f}O+TJ?S!8~Tf{<5SoHPP5h9@7cY#mgp29%{WEmC8Qj#;>MdnRdbv*!qZ05sn+8V2Ayg%X?bCzRu8KY zOnr5z=-Yl0rETc%uRR7ijM82jhJt zsoG;f>0_Cz#e}V)GLj-HzxK|#Oj7|d^_}Uv%^@|q98G$Cq<(lfN)AyMxy)7M*=*M} zLJH4=^w9CEwYUb+5-LCVUxuB?k6Ji>!X`9@xP7DuHVT>n%=~c+W*^x0aTV#bTD53d z=5>9xrU;THfnmBa3sl6ba8oV^tFLlc8GY9XSkUd&L9I~;H*2qrpg?$4!|sX;A>1xg zuLXBH{2NzE_+vznAzF|SV+tos;DH4j?vfOIefmzv*&*e=F4@Nk5Yw$$&?1+r(HH^V z<>2)^hnLlRogfxRA>7^DtvbZ=0AV%lS`$Ja)apJ|xUD*bz$UnF8ns&yyyMe)r|EkT z`NOD%J6*6mdA)lk#ME|9aUi(tUxK5Jqu>x`8C>yj+xyfJ@;sDOz<+D@Kx+iadb5qt zIJiR~tiekfomwMpK&AtIRpIj%z(t}Jrg4p&THElBfjT~gaWt(bAW3*PE_)Mq-^4WS zA?a}rMALW80xC;UP>u+{!l9^ot`XSaf{;{$R@AA(@7Rm#u%`rIm30K5zzq?;$*`b6 zh0+En+jXc<8c<2pVEsfOBn0`|vKqGQPV1!x8{5j+$D7E;R}NC*cr*I05v;1MMhe#f zKk`9YRa~B6hD_t2)~v&SAPrOaB{l02LJk3)I?R-aC8)-TE`x_@rv*>r8+5#h&75w| zqAEHAkz61x2d?KhVVRxR2wvE8y79t}Tt~1dE*351AZX)`f!i;$A_riIt)!j8gj`RW z2>S49UYvHC0nWEt!w&K(qtOuMAx(G~R|C15v*nR-kR~v8jhB;0tlnz`vapsSus88r z%``~Ts9ufITC<7(EU2bnM6T7Ueq2LN39!RvqXuz5L_P}S8t@P}4wtTUX%d?)kErdO zzS9J1_Hsry#Bv1o3@0$zag87q*BXtqmBK*-%A!U)jUo_LGpGmf1*m%Pu7+<_QuAtb z6$q>CTBF+b0lBzV!|!?{UK&!j%#<8yCueg)T(+6#O*udbPH1*sBVa*}0A$hz!XKbn zLHsLJCkT3O!D+@z>pqn8(8xCs9Hf@>((MYH(qPZXVh%#Hc{w)r$OT90a~!Yd{%N z_nXxwMYN^qjk-sR&79sgiwCm$QB18{4qz{EPH1;uBbYVo)exTODX0cvMz~Zpkz*jh zl?=xcpjStPN>Yuywhu9+)k&dRj}f$hkn{w6GL4qEgo$MJCQJ-rL+|Hou#r$g`Ev&) z{YnMc?Cxs>wko8HPOF|kq(HPk$cb`SHA6TW#_$qH1b7Qs0up482-^(=48cAU`;haI z9iR5={dL?93J+MyUg*lr1InIg=4G{0O5Gxc?qloNvBr#L2%Wy zkt9K_og$SKoD3RKyBQ}PuNlFC1xY?A7BE3-kPsd$2mxL80{w(6=UhN{WTS$o{#6bb zWT8j+VDxT{`4lmRif;<{Q2R^7t93b2u$k1rkaC473AZ-{qDF(DrML;+%g2-mq4q<6( zd$qXJ?$}|!l#Y3(_xRs>UWunW;HF)+Z`jUgG$f}~cr5~G^pLV5r@g(e=~wWdK|0ND zm>|*e%la`qCXF;7M*ARz#+teN^(O2tIRgjy$4X+st2tCMhFLp2Kp+V80k|@Hhz5b2 z1TnY<27r`wVT)J?0tX|;_@UB)Cj>%(y%cx@$vK5DdSV~YbMfE_1A^pz20HET!wQj% zw1+ZfAUs0-lk}+H2R*0oQ`^`6&GIef`cJxP(Cbq=%jt#L#4fFsa9NagON0pSF~6e4 zqeaO7uE4158hGt+!T0Nsx+0_p3lL0#$go=CHz)+$PvN)T^bijQWC)NbDr_KwSi@_k z%m!VJ5ljeQC+qS$7Z)A}AxZkTp~Bd=z9a3ZB07#{_a*4;eiK9NP#rsRjut2myVh97GP&Mm_Fys!`Z#QJW6ZMTNDb z-6#j}UwXv=IN!MAF46%b_iMB->YK3BKmsl6TcAY+2TIs}2}~ zWgwuMkgAcVy=%1MWk)s3xXaI+cc!g&Y1hNC?6X~DZ)PzA%6(IMjJsyQyC@eR^0irr zO7@dJdDxeei^#*MkVK3T*N#5G=AfXf*Xp>r!uf_$qxdPDHam6bS>bDu)}fcJ`8XJn zR53;>EO_%GlM3?a1PyWrFGnAL&o~@2jxq*_6*IJ(yrgN%_M72_P8eOOu2u^}c4D}X z>LSE|jU!j}GvAXlV2*uLB`WP%49+QAs38m*F`9}ph9n9K&oW80%>7putfTj8Bxggd zu+9!-PmK)d3lW5zZ%K;4J+_b{%puo~Byc@w)Ds*FNCHG@Xq!k8)r2k2Lk_7ra!bHx z5`=+7LTxytd9??m7(VGN<+~hd?O@ocLvT-;2vbDDzc%thv=Bgw@X;FV6R=VwDI_}tF;dJhX#-$O zs>2Hr7ex51H=!XY$JVYJ4yZX8(jF@Kkt_NPqU5`7oF^qD_j3g>G)7xHFhYTYxcxYV z;{$R#L=hYUq493C8$QezZ6AJr4P4dX+YIo+6EH@^Qqn*^&!mofoZqn1{mv!D$Ft`I zL2lMLA>K2$^tn*Ix}V@WH$DoPZ*V#KbV%qNRq}(b9gL$UB1YORxL6cvxLI?Z`+i+Y%b`KbbZJWn@7#mkII_vEXG%^6_Q`ph$ z{j!e=u_+6#SQ?NFf^MRBuM_dwiIyk+oAx&6kekpWbr`= z3c}8jyAAj9DwK3hWa>k1=T3+^18D;$=5k!y)YK4+nHwSETgO)nK0vNBD&*CW2aV?} z4HGL=K37TO0Nd#(X=V+)c4z?SU^u$L69-NM(7put3rQJ~(5Kd>^Pt^H+wdg_V!w?X zu5~yYM@`g_KtN&#QHh;;Ni_J|#=U~jfB}T*XH0M>X@H`fJR^i|VO*f8D~d%Wu%?Ny z6WvUQtlM0rsJ$pB3?@TGhvaxvagT+u7*jOv((2YQr%QR>)f=1PEhSH`g?Lx~3+sop zNHm3V1aPxJH3Edr`EY}W9Usxr5J*rMCxj{)6;a?y=p&U)+wZ`Mu+@Qx%6u}aWhGAI zB5iNp^!rPnO~yG@61cTR4yMfTYX{jV?Z9pi*Lb9kYQQCfa@F9x0Z^;WdV}oz;6PPm z8bg9<978c8m#Ps8;E*R_&2QSSX>$dX>qZEC?k-_$rMgnwRT|zX0>E=ubR)z|mo^c! z7XiBK8*2x77>H8jghq-%oHk9wNuW>-DvkKf1|r!}O#q4G;XTkso~jUe#S!98O0-%V zR_J=@B`w>;JQwm$8kXf96VfXFF}taTFZT{thr*C(!**<1oltX5$TFhQ*i>;LJvhr= zW#Pt{1!By&+z82oDY0}Udx?8%UXSD+a_z7O=I5Z3B7}xw<-zk2T#MiuXj@w_B;gJV zvjliYfXFG}3sPC42vR++!A-A|AhBtqG~dvUB{{yqprbg(?F(@X4pE_k z1Egy=_E-b19mY`NlpqBPc+F}DsTFW;G<@805J1@?zJPoSKpTWYr>zdWnh?3whC>q^ z5`53Yxnk!~n|rFv)J?LaCsMcESR9zksWEV^nE_8@%(Vk4{BRLOLfS{vA%j)|UPozz z3^8i%J09GMI&B>M zFrLCG7;+^n74T4^INXLuQ4&o=wRB3#j@L~=&b^D%_m&1VV-KYdeWa?L4`O5JwF9k> zLZ>xYwU1n%^Q$uec&_s-53KoiIWSY#eK2ol{WisaFt&jFdYlk2act7ro_(K^h zV63XO5qg~J3FdzA;cMjf^}hddk^G1~+1_$W0De9Ue)X+$ht;@NuIz z4AX^~O`CEI<-VQY(WTtCTfhg@u+`Hic;SsMas623*HIRKI zgj;O~jyJV1feIYqiEyjw)H=8Vg(%L0Tr*LC9HHfy;}ZrWQlJ)!N+KVp`<%0(;Xdbj z-z5!dGPsgad(MC%BDPR`WL(zKeq+HQ*A6j|IT-Q!0n#p@azi5ko}iLm9YI=9jUgXl zwbrSj{wA#TsMih04}@kRxiIt{@H0g$dAnq|#pAYgEQnjeg!2KnbnI+uOGpesdQq3T zaN#uEm5H#&`@O@my3lj;M_W5slLI}{KvPL}q-RG|6(Y$|akYxfLv1*7ARz#vUQuit zWdWKY;`88b9Ja}{54O-iA;xk{;JVX2hXKa|3=4SGCX3v@4~CQO0HHVK82LA6j>+HffukA}3fa~VV7v}$Rb<~Q869Wo zC)8ogKqsNWk~hqN8c*?F4rZ_9V5Ub|JBY!r5e{$2uZN7<5%dTsS>A3mk+dO1qzY1| z)KESJ$-q#*7}YjXl+Hn}A}EpTNdsxV8mV0)Wxn3nIB{)&iCp_x@fiHnWR+A3=Mbrf zD0}Ns>4+qV$MeTqI|zn236b3f<*1P60YORdZp5{*MU~1xaj0d4#Cy%CiUg=&p{Pxa zOxXxTf~`40+!``qmSvZQMbHLe1~}icZaOF!g-|l+@F;~S3$M_RE=#XC=iMC!{w;!NkjL6=xF%n!T(R}ya7OZ zMDBB4)Cb#33>A&af6d<*CLJU^x2xEUpi{BI%u}Y^z?8r%9M+FSZAit397gc+Pd!B7 zAa@ZeN+6u0iVTVYWSKM$LtHDUNL-k}Lp=1Os72|6Juiw&GSSDM)p{|$-v$g7Q{``L zHp*cnOl9S0QRFZ(`mP-@wtQsYz=4MQ9ugW=vGF0)r*Rv4o^}M|NgP!hKFBd`;J|}! z9LBJ;j@qr1jiH9H{Bp$j_*XTQ#I70SslX&&xo8O_j6!eaz$DUZ>#l1DB^2)nki!k` zYfxQ#epK~PT)FA78W5cXzKdX+NFj!>_!Rm3I|<@4;Jt*b+-=+x5bahHN(L?QO>@x_ zf8&BtKN;*zO6J)UFw$Mu4n`CY6Sa_I3YjYq424P@WIaZ;l{x~UkggF*K-l%j5*B;6%)%410y$pUQcHG79#H(q=k`ejAq%v)n z<9UmxJzrs91&A&}a1s3SAQvJ)w1JWW2s1-{Q6z;WS1e@K>p*ZI%?Hw3Lg0ugJvy#w z0Rqr6$Btjk38wbA@E30mu-3mk+DI8Y8A0hE4F!;3EC8L^5F<$Jr>sS-7 zzU`nRI`M8`w(}K+6yN}*A;b?T5ks#TdWbea=mBaep}re*RrM;IjJyE(uRLT!Ly0d0 zt$@~Gi*2E}QrXzq$Dh;GB=_7%NTiN5`OYbVsN~w^jxiyESiRRys)wwO6u%Gvt0*WC zAiXH18bR#4Ux#r#MeTq9$?2d|^iWHHia@}(5UTu62c{PfZsK;)z4>RCA%duVbBQ48 zs@C~K#ba?uCxUZEwqMp%2MSE@dE-8XiY0kCIm&@~1F`&y5HBW{xSU+4+m+{Js zQPz&QT2bO7ze`lD)lhZH!!65;Dfc-P7*RDsXa#I!sA~iROotRxNZ%YG<8LE`c#p)} zwX%|h!T54eFe+4OH@JK&*9|Qg9CPE@QtZ*{y><}nG!i&iBhfh`=AhUJ$?A+m=qS*U z;x^qxG6)EW)iA7wNDtA0V-Yf^5@HUQu}h?TDZQz z3bRQhUx46FWvFTheD-mqg-`-Px6uUA0ajEC81;?(M$_{fNVJ=FsyP23#Uq&mbcto5 zWyl_K&kYh(tWv&n%kv0PC|ev>$@8l3+R+tc!2mf_>PUo@qDXVpXm}_Bfm&}!dP#36 zkP+8u+@WiTR`MG$k`=&%9JlEv?$SxgXvN2kJC;ZS*+&^xY`oLIH`~M^f^-+G?5z%$+F;T zl~AD^+_B4vBfo68ginsC+}?yNk%k&Xk(%+^06BZA@`*Y@ZZ~;B%RlTz3Ww~8;pA(7 zkG(Zg^{_4j6lsMYieXN*JBjz%rJ(>Cv~Pt=X6 z4s%UCg4i{e9zncvo#lO!rsJSwIe2lFo1NDVQf+v3BO?LS2o1WC!e2jy@)R+wDGKe9 zzY9E)05crp5qx`*o(oYg9!k-mW(LXzc_kCVK4H+5+%^ZOIR9Os3ug0j?k zVRv6USRz3Ujtu0ouLW={YvSe_LvM$qzVKK=Eg{6Gdho+;Rmrmnc0~x%q(_H$e8S?dqr9L9!Q2dRGtz5qC;7h`56) zLQ0zm97fbl1X&H%kh-5D&Xj5#cmR3Oslfme!H>-gpueb=m9-6+>V0>?RKLyW`c$o% zWuj-Ecl2I6GDLA~WTuNfI3XeH1F|_lv4^askhBpR3Rh4Mc1T1PLXiZ+hX)D=a} zFz9C6AlI^mNS-v*Mj}Lz@4Oi)p@br-cc!q1u`7hl4?rjM4!DqFNEsLLe)D zt)%PDci#40rnZq49AYj72QY~dMo3tg8Ris47dJN)VXP4x!w>aXMhZ-OEUTG;qHGN8 z%;h6v6c>uR8XCNfu^_c1S2(ZL!Vn!*1}|T9duf*y-55`Ab<;7cQ8Y-# zC8OTHrU=;@VC^Uw*6c>wM7l2WEf0|`z6IwKL~h{X8dsr~hQ|r&VW56Y3bP(AwXhC_ zFvX%a0K#CAvbdZi{iK1cwkvpWaA?xFLe^X>bA(~PpG1?cf`EI3T&s7xG2!(qJGjD9 zcms(Z(>m1*LRmS#jhy7TFXKWLBcVs9feessgl8d8#6yxN)RKsCfktGV2S?5}#J#e< zE8y&gXci3-A;8N%8hk*bf_^=1XocGN=BdoChnY-o z*WJ{xCHfoeM-)2aH4BY{gg9WPN}}r^$u~2`rkA>KqQPF(oUImybVJXLGKwZwl%7DD zCdTOW#@enf`J+&V{#=R;cT?l`6j8+^Yp}61Yk{Mkq4+c@(xvz`-%ksuno1&J8Qpjo zm1Oa{m}qv4wd3-2WcUpc(Ts|Kus6b+7kTDGr0w#f5HUnmi02;IKe#;UQV>3rAeWa1 zLo>o?Jrs^DDX;x)gL;EL%px*3YcxEd&^xC?p|hcZo&3Ez*X2+y>~uFZ@XCaz3$M)g z(*pVbAele}m;}qp|7QQS!zXx!cs1CoLy`_~uSZx?6;Axf@`Ou3y#;-@N7dJB2#1HZ zyV1aXKS3IMq=7|LA-a{58h*(*BZ%`Lo+aoHo%R~zwRyMe4Uqi;+1q+L(J)J{;Yui4 z(AGd7Vv91*unT?6_a;x=Pom2*iLnq$jieolxr_R5OhqAuS0nEs8(q@DxO=rXLCsCt zlxQDDtf?z;{+uqhE>a1$qDEag1lM{Fqx;(7w+9oXhZ4(_?Gn;4a{g4IQbzD4>5!Yy zHlvI#Y&i&fK&?$51vWbfOh<0)u!V?qKQ5_X{<|isG7KK}j}8Vrx-#iAv^9%qDNHG9 zYcNG5_W<|hQJexIEND{0{oD#xaGeM&!qEcfI!b1{t76@c~+Dvuu zIR>!tlLjkiNiulO1w;5{Pi5*113lUEOnAQ`ceB@uD^eDlukl+R$$h(2VT95_?i|EU z>-1--RR*?3pS6Q6vS%Pu6%rE#P|>3h2eN3uFAzx?kh2V4wj}f++eRHVA6hBS<`zoH zqUsPb{~@ZY3D3g0=QGQ`K(200|R$|gP z8l2z|$YKNJc}H(2U=DxfyMH5Fy8USPqhnkIc0U;$^pc&?Fh)ScQS!*{oyqv}WOzu~ zk-%c$SjGM&=f6LslM~55=+y{ZVsDr9j<}mKNrG^WcQ}OBFW5_vBh*^?+)C~dTv*^F z-9Vxm%!ex(^yf&g-h^K+>?X+E(1IE!Q^ETg`{Of< zy8m5y8?*bcsyxFHYI-Y9E6x%}JDxPqXzFvO>}bk|?DqzwT1<}yC`QGPxT)a!v-`-# zLJD#;Mu~^`2&y32vRXJ5+44#->IDPcW4o}2QLA2!FVwn@nPk={#4$%hz9&Ka$)oXv zZbfSBn%$VlXNZDIR0eyGbPJ5Mpk^f~(Uuk-U7zFqY%+Rf#whDfPN<4WNxNdi6(BqW z^=jfK0`uYjS3~8!5a(GH8H0ir!j79!iue(vJAn%hVoDl_gKS3jHFqvK5m0_@fd7uK zPq*1tQ-OPf@$D3B^)$mK3LwlesT_1)vOcLtSa-<67sqcSln#N9$j(@UUb2oTab(v7 zLxj6KdFLYZCqh&>1oH@4PvAZ6*J1>pz%qr<-q!~ z1y*B-wTCPGc7m`0W3k^xP#2;mNmb=HB6!EOLgXhxFbdK$w4se^kZsvdQHwZ4P*Dv; zn=MIP3a(r8;VSld+AafFL^iO4r5u2#6&HlfvDO{Z&A19-#z&n1WX44bJ`egxl$D4O zu$M%rFV#W(Q3H8xkW&@8J38$~KtU2PLBUxB0JpEyr6BDs3~9OF(+ndoAZ2z0mxJ@y zEHJA9)*ZM|eYB8)2#&9~KcK!TS%Odu2qii0CPM%pNpf*8hiO_vG6I0PiL4TV zkJ`t}v*(TZz-7BUtuI8xhOAc(u&-Kx%?z{d;6*ZIs03gPXf{0*CxvDJDR2Y0SR%$E zLAvWYlK#UX2-znRgv#JXgStO3FF@Ce`%M&{K(0DJAH2q1Pdf_%nTyU^@-7GI=`9wh zU4yMXyz3}4kE+xN5kqJF2zWB20y(Np;ag)4J$9aIUO~_6EViBR|U}PXmd63__ zz;NphbR?og(gq}h@(?(QB3=!UK1y|?hI0(z4cRJVqyd9P6X9pb@PMjK2#NuQpiC14 zcrb_vmFJNzkm0fcn~yfu-q9k~Euz({?#R3QSxgCzq# zR>*9Cs5n1GiN*jPyHyZ6f+9iwZ3N9PPwdS_S-TC%>HA6|f+55&feE)2V1i@Rbw>qc z078)=582Ps8j6}AA`1mGkW&V_(-5(d$fS#-ABD;qh|GccA0=#%D-CgYP2Aw1%sGL| zt+gmBWOjY}-i2|&(CI9J1@FvZfn&UNhkpkOniMrRk@&8IYy!+P2c}PyCxW{ra-bwo z#-(l4tcp7IHdT22y%ukjmB&URAJwD0^mVrvOdUk&_O0|!$}97bkJQFeg9kB{rM6b3Lt`vSqLEV z`P=^gz4x!*pWn6k1FMVkPNJ$o=DRas^e~hKJQ|^6z~A zD4iXp6Ak}UE*&3gNM4~WNfT{0qK!&%Dv%Z^I>Emozpx(;w5$D41Ex!VaKJ}>gM$zx zy#l9C8Bo83fe6}13y0_$Rpqp6N9j-<{~C?YKt~eM>zgw7201C96;gB(rQ5q$w>;NY z6Kyo)o+e6gwtvNkk5V!&Z~Wl1~NOk z*xV^Lb2gt0!D~Y;olHg(F|8M~{sj4L#K6_LeMnQ2Tytuwu~r(j65mx>s`_Dm*EzYQ zegaDNvp(qDu_rGu(6jp3AJoRCM%AHTW;f~-Tt6Sql(8-P63~bdhQt=~cC=fgn2SU z1?P$u&2!w9r85p^6&7jbGnIPcGrs&#qnAaj`<4E*Hw%A+#6w~)rN`G>4=L8k+iKZl zbgYfT6ULJvAd<8ZW63`Do}$$cv=E{E;LGqpHAtoa$y?yXEvIgh%J0$KBk+c>*_g2!!EmeDp{x+T|_LyV7UfD5L34Ck2>El5-v61;vRF> zD5(0mJZWz?X1U;P`_(Oa+gb-zcE=%Viz~fy|A`}6?hy8b_>D`Dg2FEiM#y!hq~+Q( z^QV^<_bNW4Cv5^2N54dcDULfoEO@$Rqxedi-2Wioh*v6`R~u`ehPv>eyhNCkfK%F- zIqN}8{Q19_Be$kMJ5jdcKI%#SMfO*@i_0$A@guh9Z&WIu-xq{KQJvz)?K4!i@@27P zhOw;7%KG-`8ny`682_NMGBTsakjDDRpB>Tx*9PfTWa7wGPUjK3K9v4WUlhMqE)}8x z+aKOJABgY#3;cG%U8wYOC#{L!P54vwZlu1%()d|bb3RH!D*b&)4ynp#U6SXgxBbIg zbw0ECAOq8f5rAPN>nR)aEN!&7{==(~AE_ycRN~7$4HzZy9HKFp9vqngPH1#(dT+_d z`w&8ZbefX{H?bULPxesx?Togs;TcNsLiR-emA~STBmA}HFMK!N5}&YaF{CqI?Z>Ks z!k>Kp2Mx;bRa`hEdWJI+*!WJc#~Dke3qkPln@Yc^$vmGbTjbLT$-;>S)CGu}}NS7TOz!IBRmdCf664tDI^?dR#6JUOiE(nO(N+K;_(FFaIuteUKG==zfAwVIz_p- zLY^u%2qO_UL5><7Xb*s=AOQ~Nc%J%PSREll7Yglw_?S{VTZDFbr-B<`E=<`0MLWn! z;7KN72`aQdN2h73rEWl*LQ)+Bziaerj*+_zX{li2cfiJz^e^Up!iq;8CTB5)ws$o6 znSTIDShg24`t|h6T=|sU_cR5Z)QjJFLOabKXzfaxGDd~~F*_r^eUVG(bWc^g__#4R zJ)n3zsG<1uIlRg0S4_2Hze?s1`z^kBl|N6COR59rt@85>n<`u5!e9~%7wYLRCHWWe zmURB9-2X{CYpLhv243o9q#9WoM^5ZBA%8*RmZ~@F=PZ(q}Ujjl(>V^rc%R`kcLcm4;tMTAcU)w&`&3o{1pZ@&Gt-D?>M z>h44x=`4*@eVN$10HIgtD(zi=)LaDX8pfDJxu5b!ssGuv(LSzfx}d3ncKX7_M>PwH zMf*n0eu6zEoqXB&AJ)fjH(%x7qR~sEm0Z+&*VNxXZ@*s2lJ2UO>bgD9p9) z#=leFi>7^!J?M%pO&D?7H>0t;c=@jO;c8LNAA97gr(%*G;!e>{%hr3iP9SjXK~O>Z zc?_E>{{8>@$&E9M_wD1xdc^3>gLAHSaKb18$Rq5RG!Jn&#jF+{)wk+HKG`2DYduc` z0R#o+GI2W50t>@0bXfPa^Zg0`m*wkwF`7V40z^e^3?_|UcuZbUa{i*VHiy8aMPz_0 zt<8mH{zMxOfIJO*J^osidOw1o){EvR7;cH9;i0OOBu&0df51`aa*A{^aJv|{xk0NT z<0g$;wUx#p*ku5*FvNYVY~?p-EBWu3K3@-;F|+3J?+VfKE&ksF=z{IuiUaDc!(`am z>x)pKX1&?yN~%uHrp`*0g<4@@Oh;^cQL6j=dOR3`KpnH(TWyxC3-PQk@zOj*J%;ny zh(Sp)6@2+FaEDFRZzfbKslq6PVw0X7K@w5kCF!4N(|x);9lupKmTerwdC6sB$xXKp zvtP+p_&_zt3gIq;GBkwKg2UO?H1r?P$aD?OVRO&O22U>+bm@kpL!KL^a*c+A6Vkh; zkixD>?-%DM=u|?)p(HSuTmF!o`?#9mJ4S%!aQT6T!tAkGt-AY5~${z}1=%Fy#- zXl>=OdH+Na8Um4i2il|LZWFeRB~zmI{D{9*utvxI{@>8#TJB$LFxv(8v=yC*Q+YKU z%wcWh2aSEqi9a4A{*QSGPY?veJHS-Q8PDG$b|M9DgwWwm0K|qDm4MhJL%bmdqtnQx z^y+4Q!VUX$`nVw9#{RF8&^F;F9h~Rt_xZiF-fL+D2B@B1c^_!;pie#&vN-jJS0r~; zPVR@&>a#=}zJ~^CS4w3MQeG0Y>h4+9hre4rAZzNw9Yen(e=io*(1@AWeX&L?JE^Vf zeffLYd5ccWv@2Xhq%2DTa)CY}`&?nHrdG^s>Q(u_rj>Sd{;~YMvXBnF_%WjXXV8n~ zNVVntM*d#RphGjhpT=KHGnPHqMr<-=yK;Pv23$uu?ilX_`FpWKsRb*?m}|2_bC&EP zKV7~AsRk>3GV#8lA$N4zJTae>j{L5iK(QfBC7BuY+LUDZZEZ)In~Y1hsU|;8G_4+! zwbkT~@jsEjmuu=&lo=;iPSSEkS$1Aq^xN|HV$iy(%ruj=Rb|<2ZMc_21YUzJVrZ*E zX5=rd@QOfFEu1DKLNP%;nbR{So?<4v!#=Rbo>V-)5sxJcX+p#UkEyPnQN$KuXhjI7X8^eOWx{FJU;s%z zb!hE-2+1S;l*`~(r5CFsWa5e1RA?6&H`TYc!o9V{Hb#^_x0m_;a!+xUgL3Z4XxmlZ zm~Cs-m%Jo8jM?B+A)DFAeOE6n$ldHcMW{au2NP7g2^ks&IQ0~6#rOFhNg{I&?BRM+_KV57ocCo* z!RvI9NwZ7!C_TrD^(mcjZz=Cs%49;6*)9&Fr~7jJnacf}FkL_|783$lm+ z>0g&uKFizCrYF-fisUoLi7&AQGWV2vFp6U!cbGIhHDLP&ObUtW^3KEJ{yv%?hr|7B z(udO+rZ8RyzFw$I-7D%cdLe+{+D&~;FCM;S)WoNE*ar`QzQFi+8pp?yr6tImm z=i2*GpNt^D6~{@eD!*7v*b+J@&qy&n#&~@k->Ga}hNw!8leE$vfeqvuJJrOKA|#N7 ze$ai%g2(&Go`yKLp$Nq|IfcW)mRg$E=%SX-Hh~IIU(L|E@0>#z57q^#LrqeEudyofkKxGunUL!_|rllNLVYXsYjRV%|ESI?d76{IY_k%ooG zMqmj$}&+)IYidd>sADYkZd8Y-CLJG^I{pI(sk>8dfR`-sedyWw1WnQ0RBsm&^@ZCPdUF$*xQ_*tsv+zUlK zHMwyxGgfSfy}Om~%bHz+G2br!*u%4pb&``yA;mwY$+fWxvpFM~GQPr>Ec`*ZOqsSs zq~-y4i>dW`IfF53gT!h8O;6tB(n5^)8*c#x!CfP_4qjbyUqd4oa(l;M+$Gc}PYCi} z=m4|1iCuWJoP!KCR`%e(f^-oc9>V^DrN%0dk%peT>}()s_@TiFB73 z>O@>Pl$igGvCIWY!S7N)Jj6wj@yc(!cSnN+D!d4qFCwCqX+qDTM@~58NOnmm{gLDa z*fyS+LLLV#JI29GA$f)}DCc<|^3_vg%>ETI11E(Xr;kWX?tZ9xh`^fod4vhT$x50x z7uUtHzz+T6(Hw%zP&Q!RVi9IW0pWCi);_vd{Mo>@&ce}5`7f3rqnxv9uiuV2TM8w= zOz~%QBYBGW z9cnE!3JN+A@h*j3f;*=%{0X~2Xby$Hwk5#(>ueOV_sGY-He11RUHS-%E?NBA&{l{} zMQ1C7Lm#bl#4pPj=_023G7ZK2^df<T!S#SlJvuwTS3V9fF~ZOQ`a^<8azYsZ zAU9Yt3ALHxCY2WkK5NE?{Y$>bAu<~f0FRr9SrN&v3QZL=CBotLz?R`(;U6wEy>oEP z;wugRyu=fX*mmM=p!@eCzxvr%DYap3Y2qwuv*Y0sGi@p(`D?_YZDHnevHYm;7CcxN zt49|6Xh=tdC$>xO<~M5fY9+TZ|JCB5zLiUx?F5hF5;LHKhnHrC9hy%`$)ru z#bj|JXO9-8O2Q2#NgVhxhqExzX%DARzh#0O@gIf4R?K{2H*d5U9hu8;sqjk6qQn8A z`^)#7SdOxu`S(3)A%=RX@{@91{;#xB))nrsV??_l$dSdy^2b#0oM5-w$$}KayJgut zaP|W*fHHo$bb%WVEI=Uw#8Z{=WsWcgrZb6NMCyI(JcwDi{ro`tN8td*5Y{Quv<~;Q zEBODTC%L;}5Q(*Z26GipyHjiOR6s(Mozpwj)XEn`e4(P=LX3x3Dy2XTF~_8ouWxG;_$E8Wm#SJ768K}FB)IiIH>4-=C5ag*S$-X`HIQCg5boX!n~#Q=+WAhKl8h@KH-_V5u)QI z#!wbv(Q)-uX32w1c|fG-cxjYRSJ!yA07f$nV-|MY7EAL&f~e%UuFSq$;{o1C%;qL3 zDc3?(k79YkRb!E8#O~?(B>L0o95)(d^3nWI@=TXQm8B4I`-pr@D*eeh9V0#t+NDCx z`8jDFR-)mEcrv^Q_a0BUWVdT2*ruAxA4a6o$%x>};BcbFahg&@ATGiTiKvCh_q=qj zDl=k%)Xl(EW{a_b2}_5y0!Klr5YON%jjom1i?w&g8a^nfD5d2Ev4+(}wX(?=S}`Ci zYJMr^)8T$8vQL$ftCjx5EZ-Ab-V3i%PTq7rpz4XWvml{1dL(GB4W9#Js|8TBsif>VGKAaEIy($VPH6Y;ld+lkO>S@q!Y*+SB3~m z#NuH3L&TUAOKacUk8dPc*fKRy$l7|U<$a*|iCcJ9M3Xp$ZKQ0Wpo#N(-iT0(LW zq#3Y?3SOf`sZx?I%yHl>q(8AeW@b$Gv$D7BHAX7+2rNi~mmuVal91J1=3A$1^ml0u z?OP$trLZ)SOmmD>1-W$t7zk(;2@*+}q?O?ADh}0e+J+W;pp4Ce&8oMN+$i>p71vMK z{KQJ1y@GwM_WK?!slwVIFcr%d&2M6xQeZ??zsS#>t9}5QvL+(9mF_?;?pHdMnx(iv zMdxqJn*bm$R|0R+oAzKYz`=Ysc!b0wAXDDev!dDHE+m2p*Ibx6Ap3zN$?MACQdQ9H6^41 zT-5SB)!#X>9XEKie|0A8nH5O@;=yRr?OBSnseY9oNEMlAQu%<%hCDE*@~arWHOAoz zZAC?1g@q5w1%esqJ*oyf&`3h^W&saeIN=6Z`WqKml~=4i_~A3F6DV(8sqV|AR%Lh2 zc4`tr#H9=Hb5SHp3A{^(5O6wWLuKX+L1wvqi7!Kt^+mi0WE+E@OX%tCqC4>v{&!4=tFec%t*Kgmg`9+M1UnF@brW7hE`UJtDc$n zm1W+0|7e8w3odwWB&2st03(PMGV=(ReP}00?WuYRT91YOI0d@{#R12QzZL9YKwIV( z$5ON<-dAS%8TgyaDzEeCpaiIe>9i3Qgqf)jh|DZQxLq3mf^tC$^;4NyyXNUOmMV@i z%lj#pr|O-;3;nTj7TJdg1eJxl6++$Lbt++zDnDU1L$Xn^yo}H7puSa~>H@X@Z#h}o zK2a9P#OURRm#?f`u{a>@#JP7VamtQr1md&qxM=Qc^vgL#us2bCNyjawfe+3V*l=nG z@}?rYY>S+64>POsZ)>rg9h=pV5%b^@rc9C}9r5~C+UfN0K%CM&dHfN%Gm8&o*y0Ub zqV>#Frf2crivv~fS}u(*t8rRSi7lZs3CIHqBjz?##@^)?b7H+(ZcwAAy~-vn>rG7R zGu%Wx{^O?trS)&x@mZhFPe?MUgAx~rt7I^RzZ&9H8{#T}7%R`XR9On}R~*QmfH{W3 zHeib9ff1R8?s7I{$BP+0+=xtC)T~I$HUqb+W!k6~kgP=)xU)I)Cc(m}OTi?HpU&sEY{U2~g$p5@4-q)gaz(_6okXbkU^$Crlc)2)xn;BBEMDH`;)1CB z&^A+Dk5Ca>k0brp!({xc{PV`oU$ex)%B2N9-wFq77A{!5FvA8V4t{+ckAL!fI=o5; zb^4P9IP;SjKKjwPpPj6WGp~NR?Ktx>3a~_|bB=n~wrhv3;i4wG>!GS{Y@#f-6Iiit z1Q7~*pbA%px@)+DQC~BQlGN}Md#&2ZtvK^HdAQZ|Y3_==DX1da=HCD+J7{^jtQY_g z<>Tef+`mk89KxsI4jciOqrk#3qSmH~(TjBAkJrRz~=rB?|thx7{xk z*fM>B7i6d|WEC9z9lRO>t_3)p%ixX6E>5I*4tVA3wmv!mFXHxGDKCLRU z=gc=>ZqW`tZ3mzBS>V&U9n3r2H0B+W&X65$ny4MuP<3~>Y3U9(jj9S#T79DeUw)3> zbo!H;N#6|yUjVGAHkT%(SF7U7;8EmXWVB63mo3n5JKQv0A*6s1gO_fHo3_JEL#Q~9 ze%ms#29zs5i4o~c_^ zpZN`5GNH?^ck4?tcNwZ!4xUQZBCc2NTT4dUo4cCK#8F5fDM5UNcdc#}+LdAknA^g_ z*@}MyLDH+&&3=v&9@L~k#?b6%DLzX!2C=$JFuzCvle_xMs?mU;2v@AX-1TfQ{b||# zQccz@-VE^$iBt8eETDYrsxI@_;YIdTu@FqKhHTALXX|Vk)TK!~;us5Y?e8`Ym$031*0Hf6-7}{7qmRmMPnYYa^cuk@X~s>{bW- z{VAWyAFnsc$4f*qE30)@c*8`tPRr{h5)3~>?gzi_Yxhpha85;bQyE?;rM2>y36l+< zprCChR>GfNB13I=uL63HvP=nf8f}T+1Qaje&P66)n%w^&pLKWn>73x&SK3!p)5KwyN@+5fz(0-&(r>5KD-Lw@tzCb>{9H?hw7Kz!#rpypW)74HT& zgoGZFNtI%0{8-!+$r;Kl*1`&x65N)+cz0>{+lSv>zbtmR-33G)@`iai)F>#)KQhP1-3kKnAqD~bomDX*xjYne(^}%{9b!aCY^~aFXeu-Iv;yUK=Bp%LN4-@ z1bNMUdfR`_@7`_0&F;GR{$K&K>-XmlC>zia5<;((T1fcY0cG!ivQG-rlyaBufU+5Y zc5eriE#Axuwyi)czcqm55~o_>z8z3@I*lhlVgo{8&T1vf5id#x0^rdvv zaKPL82+XU&JvBQ7?i~WR!hJggZc+eu2;2aCEUQ3>>tu((Eer%Z1nxqH*(wBXF4zMs zmGJkJYj0i9Z7I@=c$K;bWQT-3n}xt4D{2*pPzmAi6Hy=v1$Ic-z|7*ICSNELHa`=u z^PsL0^HHJAEdalk2S&hA*AL7NeOf>*3!7j`2=Vr^Tmc@+q>yHZK0V`?%9jm&`X>^* z@mKjBqG+zbWE8m25_tN69liV;iyO&=lKk}IcKjSud|Q5Y)s`ZRGrw!`2g2Qv@2}KM zq5iL9sSiS(-gJc@t*bQKX34_Ug5yrS5x-m2c3PiqM*L`FQ5I^ZMPAY z$PW?R*qe+-vwVD(ib_n+{xCf5rw8x~O!|lO^vSairqe64(fBM)e3HU_$No)n(-8_( zPiOs@{b@q@mS_9JS&EA0z|u;}*Z> z-_mU(NCP{vd|&sB(2qmMvLeGveZz{<#7P3fvP{<|094aTb=%S%%S%!xb3HTF<6?bO zSLuaf<6nbaVwwVHbC9w~(C65Oif#S*yX?OXiq;359KWsqEYkt0x)I2gYxM?E|Bw|N z@5vVXMW3Cd$Np07?)7N@VU6~cPPUl%c9?}0KyG!zb}S>ZJtIi$%y9HDLHTYga{+(r zI9V1ao&in>!q9iaG)PT5_FOY|HzEG@_v%Cxd)cIJL4Mg{g@et@%&te=`oS*y*kanI zejFrG6nMH5ra&@|^~|yjJ<`Jn1kH>%OdT)LEnuVDkshak>*BQQiSApeZCjhswsEle zR(2n3{`Z_+ckIIIJhlid4GGS8x*lymsvTUVn=K}9=o@}$*h%2nW|SFOq^G)L25Evr zn;J=Mg=rGUb{6XiPHpJmpj(!wN3mljR#OC&+1j0qm4{LcCxivwJ3 zbyvL=$}$3rCY$xxOCdXJG$XjpL+F)ivv1UUD{!NgcAwOnu^G)|1*-g1{qO43%Z8`x z4QtaXTb`-6tk0}y`eD5#n_M;+g|qyQ`rp)v@kWh}FW<$otB>kEu|J_iV~Tq7d1JfP zab&Z`cGpG{?b_J{Z6UWTV-wM;F`?Q>yxIG$i=t7!UjK`_AZl`Zy-95dYGW=JD0-+9 zUsQluOQQU3?Q*L3w8i&RkU&bb9owVa9@|Xx%nTCKpnE6+h&~|q@et{rgUcxid_PG& zT@S1Xg*p;9M1xI4i>DhbUft0A-sPl>39T!fOv01iY$R@?_1>HORE?%xU2ZXL6U$7! zEHia8j7=x>V%v$c%unznxk(ngDMZK!Qlb@@wwtAqYx+*6o4%czk&_u4i59i#BIOjC8`TiGq) z^1nBgo04%vixpH?O0EI`;Ci&LtFDz!wwU;y8G4Rw`5r2_WQpf{reoWIjyzI3H5|iA zgUmz?b~mzvBuQ+;@*EVX^3xbEk?s4&CdB_mLv&O-jaiqKmI-8VtQD>8q zi)51(R4K?cFhap7wH_nYRVk&LEoLQD^FcYT)YcPA4?`<9a8>vQDggx$Pn^ULjMy_w zGc^r2(OCr`J2qV>!ONx_x^8a5N)Pj)JP3&oNr8j< z21^}P&skT&ZU{VGU2ZXlc##?Vptu|BxLDj61sQjnqk@iW|6R zz#q2lM3(I&q2+8O@I2ELc-nS$fxy$+oZG`Irq_yA+WJ95LMl0}wf#NIrED0zkJh|< z-mgj3MHgGlRdI+{2`r+=PKt7uD70srewx_2o?33C2WbrXnf~M$MqufNbi>e{M)OB@eK_H{ZVsSMe4rNH^r<2oDd}dz9+ZO{J49 zW({4>eAlvdx?A9LaUIWxAPWO-fLDqb!GPEsnZD;5aqQU^6zn*(bu)FLW}9}n32QW^ z8?l#7>K5D~TP%=nI-8WzO=pu*x{*!Fi))dgI7Q96Y&|~uP3?jqaZ2{G#f)TuOA^ns ztN>RCyk4H~q;8}Y@*`{F~uRKm= zs|6Bu+34=&!VS-h5~p+lq456d6Av^-*cHf|L;sPY_Kvn6DX?RF^W8Znl^kU^MZ3#2)Fk zml=@-lRhGp(kOOA%LXSTi5tKglcdm%+|cw)H;AItFrvWnqr`WtjqZ$wlu_*F0x6?x z(~uuZnY3(F-Zq`;3qI>pSl@aVLtTBT_Oiu{026EK!-W__1&%E@2@*Gn10%EJ#C0>M zGWf~!VC#qF-;QhttO1Dvp)Z+ZK@;9gj%cVaaxVm!H|bI0nnXo>4JEnTEkT&$oXWF4rje09%wzPHzmln{&9sa2Mu)2&~{uqMGy&;3kRyH>%l(1$!qYd=2?&H+qy`C zY_we@K`w7x$`#F7G$PU(O;Aq?VefHn)TP+s`s)0|s((_^ojX4=>mT9f6QO&ne^ZgL z>-!_uvqEgvwSF=?>P7STO1h?ER*%i9_q5FiDnPJ=jsJndZCY7k#DN|7W)fIgmQmb9 zf;iDQ(;WjrrO?#_H!)KvZnhP}_qExL`b;A>tGb~J!Vi^Zjqt;gOO$qvaLx+bDh*d) zAs!A^#)Pk)Fj8lsdQV%-LWYj0ngA*~(g2dwh$4sVf+m8%@Bo`u?88Ojxvpn;NG0%7 z1b(FnSPfx+2*BCUuH0my>V__0A*ES^h042ial4Y$ly)l!bIdw4nymM%*M+%CC)><7 z0pfBJxExG3!c*?R6A{476X+@a4+7I+QFf7=U^qVb$xBlhj-cCFupqj+3)ydzxBQt# z*pArC1&%G*q9M*#E)v;hf%8i?SwZh(g<_NNWIZma>wVQ;wwO(jTxOdd^nTa&Y!_Zn zq#t=YLWGT2hhYF-EiXun0OmtDKO^`)bu;#2_!>;hg&%#h=&pv|CpWX3Pl^@|9w{Tyx1%M*c+yY zNdLT=Hp7HUzABqHTa}!(s8#tmR$8sVf#hQC%_j3=uPc$W0@}jp-pg^_d$wQMQ>$v%!Job}rz+N}~n` zmi$m@k~_7}R~ul9*)7VzWI<%Z_D=432f2NL83jIEaUNu9C}%b$r91G(Aj6YPjUiMu zsC9^IMoh>?y8JJi9CesN)!_t;MnHWFC;fDqH^SD7=c~1S!{1YBg-p8z{+?Pxzi#`k zaRqGGHLepA%TKlN?6ovHO9RX&gWeI0=&2esBnSX9h{|>dEFy#f0l36+peCiR zcWY@&8@d8*S+lm3-Ri-E83xcuczf0(@CTiJY%!Hx$eBUpT4snuOe28$0`HTfdlBGF zknsR?ngn@wMhLtBJ34AqsU?CiL#R_5QMu{Ll}ETB%>q|$v#s57Q6Hv5g3%CI zTv>W8odEIc+O&t-5o?C>Of*%osEqQp~}ZtWCC5F1xH)Y>$1tN;6y9V4Ly zxMC?HxlANuB9zBKSa4b5Qr0-J4@KmH*ciDM*@_E2TvaLvH}`s3g1Ym4cR(0&(*r-<6l zfRGTImJtNNi2|}lY*;Qp6f$rKq{PqzcBKI&5Ldq*1tHL;;uM^*8T}ja`HZIO#x8sO zYps_*{={CzM=Zf(P58?C8snijPy#|`Ywranv7j823>I zNpUbg93G@3Fn-LZgDF?$h;u%yT$KfOa;~>oMq{j>x z_?I=!3g1|*$1Ua-Ku!b@BrKDh-BDo;u)Why1pAB_Q%J*CnR2zo)h)tZk>e&;Iv zZ82Y@&^{f@&frxtAVt#ubph{&*MvX^ycE&t;0~YR6u4Fz##!vaIMHrGZlkk^}Gc8n`XtElbnDvC(` zljVxY6psgTPZ1Ww@dwtGJ!*e~z(#V0=^|lyvvlMx z-&Ju>FiI^mU)5T-WvdJfDHo z11J+eiU;#4@=CbbdfoTn9+mbByWL`DKoWs#)4+yK~#*B80u&Sy_2L! z+yN1SRx&#TV4iJ}Ju3u?4b+c~n4uZd$he_%k8^LaAldz4o80ij{_uxk?1kXg9T^3C%R)b0ltXR#qZE0SuWFz2`_2~cc!hW`x@Tf2m zB3Q*lREr7FOW=UJ@M}_7qZ8XOVMeaU;mcAOCwz#Mt_LjEgtB>1ht1w71pj)Y+LE9p z(WROASG*C`R&BC?N+UYz{b4p*kI)}>ce2G)hN9?3hL4&e9xw~ZQ~(qz1j0k|hwVDG zQdH4PGDw4w<-%=&oGsX(ATGji8A2@FD4FkiGd)>QqLG+NB(a4?j1!3K z6`5>+fUY*e|hLjYT^HB0IMUA48^u25&chNJ=@E{5jW_35<c~ZanHNFlD3)NPKpaIP z8Qeao{DbNn!A6U(YA4k)JU}85~;UrLq2Oi_>(m2 z|7bn-`R$UPwwR5456qIlU+6<+Pm!SlB>q5YWSBH%P;I*t`xHnHD$?yS`ZTnlO0*0u556S@%8Abv;hVi`S&9uPx>U3(A~r zAz~592uTb}Fid|?^x+bM?FWgfz^8?sCytQU;#;nprbuqm0hNbbH!t-!bq}?^CT+XB zN@H>bZxnUC9I%<^x;~lb1*gpkt|){7gqX!4DY)0w2n9H@&i6t49Iq_^md*1q0iipEIVCTvCI?ZEIB zAYCU#L>%PGC>#psa;pZmJm;Z4{yV%Z3A_vY!haAk|iP z)qSNUve3e2CD>xMS;H}3fkdmeYm8cAoK>5h?qIqpkkLngflPZ>(lsxUcbIrq|9*=Z z&jDg$5IV5l`4MmMy$e7;NCQ9}5CmkHK+m*v2Tq!JGpaTo2vz_PbXf2}6ix2zpk-miUGI5#gNUho zyT#Nrp%9bQWg2)ZstER+qix6`m-zQONcOoqcREpTV+^a)EJ%^4K;C0U0s! zzC17!7zseSR0+z)GXZNpBu(TLn@NZyu@q^?8R}HP+qaQ^*nAC${0eE7*!I=7TF1+= zf%%3h{>67&OjsQ_5P)aL3xV)S;Qk?+CNX@+k07{NxJpnW(1-z23y?{`M@0Yyv=N<) zilWH*q8DZ(!oE}21=vnDAR-Ipko`HouY-KV6j^@&M=Y=)M206-Fp_qJ_2hy4v^>Ad z`rKlw!!rxls{_=Z3~+#mx6UZ()6WoROE``O!fz3HjWS>nut5-TMP7V(XCr_aBNims z=-Ig5be$}tTprXJrC^DrpDq$BkdiYw0e?*AgW0qfPJ2mzZOHUOtmy1)i}}Nd5pd<8 zKoxRuLJtWR2*L8h)HVPbfmBX-Sb$86Dl(>@0T=*fhlx1=BxZnP%nhr>wj_2Ekz2QS ziCEG8OD#h44{Vq z4qH!<*9oVa=TfC{V1^Q+K7d3v%*}eH8HhzpP$SQRJe;=H`}JF-v?;CBTookib7_n0 zC5AW(uObEk;e)tc;6ED1YuYV8?CxZXnF_)oKqr7?4UfGUGI0awlPDG(G#n@VK8IOh(D1e>hK{Jo{iey)qk(Spn`ziett8ZF)2sBhndw z+5>PtKwIfgNQoXE0up|f9!@wO2PN0=55{49B|J>0XVpD;p2bv7=f^*Lb_j&u8`C5B zgWclS{97I*Q^V7v)Uyyj3`AR0Bt`&|3D3W71IH*ez&dFLtV27B=?TN{0iG^|k|Y_x z@QOuJ_phphzXt5uX-a}6>g?cMc#d5nH`xD9pOz}H`prSxM&}1=BbBlME+$x8A-1kZ z*LP{SW(V6&RT~L_`2PT_gB=5?goqRcMzv1JBerWsNC%DG0P-sGLt(vyK@u>9Nbr#4Y(nhi$RHlyg~)fIW_Q03eJ)Bm~xE6vBdlfIZ+3+ZKvVT481c zs4j?94igmx0X}W3+AA>&2HaWn3cgU?b|XOSsv=wiDJuNl=ObfISGe zYXUT22bhw`$bppzz9Izn0xmv=v5!iJqnsb=7Qrxpl)MlLmcW+#3{PwKC9H09zOT|= zJ+|ppD*3(;v{0t6Gj-oa zh6X~l5z0*{U&z8Y9o09q-cc3adX-%4s4Bah*W^DU=qO1CQ-nDl_T<-8iw384fvCj3 zd4-$*kY`UtB;M=jVcUtS$97`DAY%b=39*qV&4P?*1K@2I;4sqE3y@>%8ximk5FG-& zD@9f5H~|(kibEjXPQ`g&N>tj|=Z5%S2*9TqX$~Y+xYlyevdy`nw&|d%RB_g$>j%n! z)jqbJvOwiVX(xagz{%oTI*NVkh5>qpE~0AJ#+<=dRwE1lSin6(~hKT-~Dt($G9FRHR3 zQN<0YppI>3E>fQyJwtVE-^>sS4H(q~_py$|meA8tj22l_$aaDG!b4620y8(K@BZ?0 zTiNS2>4`m@>SIfK(t6Z=N1?9#e%r|kD54Pcty4dPCCSGF>!HAo8Bj`k>;$Nkf#6F7 zT_V=qun}BC<k;%_g`hUzRt2wOA4-YkSNBmf^W!Z<-$BuZXHh%~C-#UVr}yv?bsg@D&6lp$s0XRHDiW!dIyJw~nwR)JHW_AEmD#Rs%*7<*ro#nmd zgf6!_4_2nMl(30G);rVr*BivHced^1&XAAZTXk~&|M6(TOerJQ`E&Xjf*$vN* z41j?GSOVa|kik&R(l@LGh#^5tRuEK1jtLkFA!@coVd{uavEcfHFlMH@>N{SG?8b7k z*Y-PiR;E02MXY_yKW%eBHGjkU=#>ySZRvT)6fA9FzR53K1x<0 zPgvIh6@a*Qlr+M>!Xn~D`kJ2IHLV|Vqt|%2h2?r}DmNc)wWn>Ta|-BIfF>KUk5WSp zARK_`>%tCgLc|V$@a!Vm2xUs)*9Wu%eDXpg^bT|ldte_ms_2m>N?F8 z-RR)tc6 zrZ7s)+I9$W8i?;187o7S5KlwHhw^2F_{0F5AEfhjWbGR~hX2<|cJi~EEXry${HoaH zU;Y&f7E!Gb@=bmTrt5gp9}_%(zITbhy0kbP&*l>Zr)WqE=nwGUJl1Ba^@rMbcu>y4 z*Pdh1Do_8kQfd5PVU3ZWzS~~76zPgdFPv4I=hh`aRU!)QcuXGw%zCKJj%e+Ct=hG4s)4P3r%`gESod+hw(z z%i1XVVH(fyw{WIi>kkH6l(L2zsyWW!y5k@AF)cC21MQK~jJG+@2z5zJNux%HI7$<~ zFt!dpgUaW7nl>G28DN+vST~ABBi=}xjras=9kTfV%v%d7s+>)$b5>sy8=p-^$33>l z>i*>4zl6oJpEcySQP~jf1OZ;+C%Nz`Etq=H!XZ{6wqriUl0XdFKZH;XPWCb1qcluV z>YR`I0vna0my|)jO@q>}+GwH;fS)|j!s&Dr_lY&o{p^VK*_hTTYz?M@!Z(L(HV1#n z&Qg_QtK)q5#ITQ0+X|HnT8ZQGyhKFj(|sA`Ql{zQF;<%@Y?NQTe>6g=E?O)20c4}9 zDq5fOj_j3wPx=$E4OW3>p*)_LH0xA5&4{K^*x4DeMdcZ4Y}22g_ZU zrcqbZaT@nCaMm7gz$hbP{y6hs!{(fm1*6N!is9d;t16ifa3m3HNSj+fnx8H?nwVG7 z2aSny!q`PH2IpuT+Dy}aaQpN)oM74*Mk8?A+yDIZ(QG!J!skZ7(g)%dJHXX+_9#A^ z4)^ENv-qMP4-kE4L4Yy?FM#Z2>|dmw_AjEReVX8Yf4DC$!#j>f*T9MU^I3n;e=^-? zWA4+K`!uF?hUi4Rd!UKKag!!oU-x}W)=gJZ)}Kt-a&R5YaaoM0-^o<$?G0RLv-z~j zlKG_vkaA6@iT_PrKLu5^^Wc7*>D!Y@n9XkA({3*|m;DDm#XrFix5pH+I{@Ksmxqma zS-S!AQxA+V;&eRX=LT0EyH#+>C^HeA+!XAhO!^F+SII{MgbdfGeQL@t4AIGp^D&`P zHdsktVM_<7ho_0}MR)aAs5-a5|BB8g$AVJne#I5R&I%?FvS(uq@JpOWx{27i!S$wv zXmuQ3p?d@bldHMRQ9JnKJ-w`54JUnif~$v1yaN1PWQ>0tuGTG0C<>?PN*&9_O4oGa zX^Q`>%g^NEuBPDTLVaYCqKaGm=e;K-%en_P~5P!{Z^O2RxZW zx+ccB^wGiW2p}kjxbjC@GP;IR$q*5aH7=8~{;*2zvJ`Md;0t}*6JN?Gnv!Cgc6yqo z+T-WXJ@~!z8r`2sI)m^uJ##B1rRTX-yIV~9pTx7m7>Q)M`q|7HFBH;0g79$>zT~YFA|X+IQPBB z&Rux;5s(Q_8j*snn(olbTxTP3R$m&$>|SY{{kz-GKJSd~(t@MpO~lk#Rh-MuEt={> z-+lD^D^Bw@);UDZDdM`9Q-yl&eee9mi{~CbzjTBZ$?`QWycA4SJ$>&r_=4@zLA%)U zg0SG$_R3teSNs#4Lb^)0ih&1FNNqx~to3)_qW&H`|MCgE0@14K&_=N|Uge1G4&ude@2m46+7gaXVt4znNAuD{x#peF4doj?@iU8 z&AgPch4L>nJ~?D{E8dmoyU^*Wi>@n^&AF~|z3~XsNx4?XzUEVJ6XZW>7v$MjQiw;S z@DNp%PVH%@2DpdtPq4!&CfT1l&>n}T3^50y=nqJ2T}u@*45Skw_0dLR^<=H zo>XD?nDV+ujC+>EDlptWm6S{;kT7{hI$h7wXd=4CFSx<^-r%4>v-^+Etq7-9(xNrIV z`1hKa;KF5!E2DO{t7Gmomkl+S_mvy5qG(iiH~%AkF+%TPwo@?RB-uyK9N3f$g}9iH zODzRNMn5BIuaTF=EwHA(TA3d%{H{Cl8O|@y6MW#|XmX+~W&eq3x*tPafS|_zEF~A& zIp!}HC2q*txYhnXZd{bI8{80b={3vP>y;+G`n8#B)q7L6tj=k78pvWNEf2RyD&g|M zTgqwRH&m6{`Ttfw2vEEyBgz|{5*tA@*2d`w_Jgy`cEvRJ37!kkj~)_enYU7V7gz9? zL4AKg%%%HOetO$K;7VHARN2~}Hck?4A(=Xf)MQy=wsaUZnxf%>_9z~e$+i9z_9bDt z)L=%3qzLcWz~Skw*cll z@r8JFUyvP`N(Xmd#PnbVTA_z$W0Vc8e*ESG_<`Qh6MTLZw)3GF3u5AYI8(2@cOKxs zwYC5Cll^hEZF` z@#E|#lEq0JX1aQvDW9LgQ}854tbX_jiJbH!pCXB{Q|t`7An`#A_#8HSpnR5}zC=Hf zM+nT&pJ-9JY-Q!5hc1cNZI^gC;Uq70$-Z^Lqq?r0B)Xv_s=mEkQ>t!kUTWtvJgHZ} zC%h5v+juep<4a))Ec!WV=cRG5&H_?D|0O@@UHbW%cD54+#EN5HT#e;`%2s@%@m7i+ zxCv71Plx!qK$^|Jx5zAc;gL({AAbDYr3+AI3j?+o7#b-byXqn0d+`!)(zs>wGgV1f z^mAHTB`=@QymHdCP zCLpc>%^md=jeOeH$wq5Z$7rqwNE?2PYO0CXG>Kl%&$Z2?eKE}D#r_9NK~xyvB~h%~ z%>SaTi;b329ih1pR2wr56fp3OPD{r1{L!|_w6CY~hA1!|SRGIiJdu{sh zb&uCvYm`!gA!^RZW$mS^(wZL?}$CjUfa*Ta-@5K-B4C@Gi2XWP6eHrn9&N}JniQT^EfD9X0Ft^7s0zRtFa zmrncx+lsn~Kr})HBmWjIsXj_`NofE~fLI4$@2`i+_?H0ArKson#j6lg-naS632Uq7 zDz2HTx|J2@g*^!Cv>E)BP#=$R$hkWWz_2iYC+~w^#{UQql%D7uLJ52@?bx6fbUHafAjRe zU{Q%TMa0VUGL|R*{*UisA%o!rkvmLG)V}^r?bH-j=_{x1dg{kNrU;MIMJTuY4sIhj zcIXrN%Ngydr_dM7L@+ho^^^!V&QI|kw6Y5x%0&JrF_}~J>5ajNVl!lP0NhZqQFIWG5gN39_e<@-gF5=9hV(LysjFD17i| zWG3M`2iOm?&hw@eR@O(%{&@p!sjwkBDkIyz*l6I-QGwx4!?R?dR1RzD zs9H0ORNlNI$g@?^Suet~mFGKxJ9*oNocRYA$9eNh9m3fv)oc*I`C81>f&&#MSI+r_ML^YI!cL(ayC{b~zX$QYEo68sD{P|ZxkP(DsrXuE^@7=z<${y*IFO?&lI-y`9A^N-KIPNr7*l^)Rw$# zMMPDrFuZy=Rr`ItVjLC!_=}F4YDnU12TZlH&_>ZxpCjw=(4n75hu<&rZ*bRN-CHf3 zZU@rMmEWcGl{${@=gx;KT3k72aG{A8h!=)(0y}fbmnKJyY3p6s|=` zhwV_IIfu};V-zI{0S6hnz=Ab^8<#q$c}sB3@MssSqt{Y8nwu5Ds>M@epp17=Y7uC&k|QKfc@)0}3AkbTY>ed>!R|bi;Kh*3?C; z4uW}58z!?&faRjPdu#@w8>Rr%^iZ13Nl{w{l?sa0t$sIhuo-!*ep3u+O#4v;h>;Nf}^kj(=X%6z2@6?NIGp`ZuL>6d?V4G!P}u&7hIF6sBWN#E?Z zljg5H{N<)Oir7Y|;}vCzm$@M-bH%ov0Lwl=l}rR%>P}z>IQ6JcVHt63A}|{glAijg z>176{6BMgk`Gli>Z8y!;oz1_s2C>-b z#io2Yk9p?ksM_YbUY4Yui`q`8p=lTv;B#Hndop!Y;R{Sukb(X}*tw`xfMO+<1^vVT zDDnn!6N;vHlf1FHA2o#wKL+qn~NZqXGjcQ|OV02bUs95Vp7fI`ZVUn_@`;AKJ%<#$=R^&9MPSpoTD@H85NTL|TY zg#jV4{xF;{;8+UcV&7BNdzm{-nfrSTqGqo^+~fU7WQ}TZaHQTp0<_`rV)%zBn7r|ms-XV0^bdWLp z(E*TRlM@w(R0(MmV9KZHa-l33dAV>THp<{FP}>E#=@@DHfCS|j=L{~M;K}5746l#f zR7~#YplbAtXt%RDr_90G=}_LLL|xbIX}$}gfi5B~jE z{=p^42lO+A%kzOGKrsW|TwwzMu*5vzOV>~D9ZmK?fSgw36-X73NEkLApo?L=Ak=M+ z`Z*Ylu0&u{@aPbL$wUW&8amBkg02FN{TMjMw{G_YL%&wpy!y7~fBt=f`~#pi(DD#f zPv@IO%kvE+kO-AbLeP0u_!{T(_4NfkCVaWh})oF*|Wg z-mDByM5{kQk1ZN{6=>r2VasGQQl6E?ei7L;YFy~9c3{VG}$~}QJC2w?o7VF5wIAEMP35|;KJp`FwmEAT`sq%YESgOrBmk5+i zP@??)CMwZpW4tUD&_t-ZNLL%bC1kCS#RyfTDv7JCzI{T65}Wp#7?Uyq>ZnQiIeJ6{ zY|@HL0&$wiN{cZFFF!(wIpPhJDw~iU3OL+C_rq<;>nw=ZlHRRUJNMWH2GJ_<)9L9t zoG{f*run>G`3?So7PLn9i7vE8byie!qP!!;MmAD!tLG;F0pOpt@=0cZHn?*8G!Frg zO%SlGw1(V@heRr`_QO%cw}a>O;@^uSFu@bV@7UJ_Xaav7Yr@9ofN?BFU=yVj`s+ z1<(0e@vNU==)|z&41k))a-`TOc2J_<~ z9}y6ZS^p4aq>!^%w0E$v@Y#2-W7>i-DSX4JXN z=PD*yo!jMGXxREi3GLY-U$)47iixX^$|ZvUf5j~xW&hP9mw$Vav{)&oAlX;$3T-N} zsnm`;0Mk0wqD9qw~NY`vt=KZ=_HG$!{le# zb!9I$n@TCv)`iXdi;$_;lXDejQ+DhNO=o?T2Ya)7sa`7USEWoM1Tdaaj>hG^j|&(% z)U#^@s=@A4dGoSsmt93bL}kJ{svZqBUc%-Y>;eqQ4Q$V%$=L*Cg@c0Iz!K6NA>Jj{ ztB`8Ag=5939|KO79u^YM-zgm9PXoz<1Y=wiFybz3o5ZqC>}b)hi&kpWrnv zsk$i~kmN-baDWk>@5Ky>cXF28;6J+_qz3$|5ChNWfksoR5@Rvax7ApzVn&XB~?@6 zd%Qrw`EFydwG^DT(dvRrbt88=$%Z<~tA)9i%sZ++@|FLuu8&X~t*VQ#A9i{O@J#zL zDlC%{^<_6~e&Kq^o5Uom=^+1xYalIOR1bTucWNJuABhU(_1&#`bmcJOk|z&g%~e}TEl@qWOdrt@rYBs~ z0NDiWtniv~KL$;j{$3~*(~Vuf6)A|TK*Dpkiioti>z6x*KZEbLsHn?YAEmwbKV9f5{@o*Vbp+ze zB9S}9E{1#4CB=4F!}(3t0ouhG;?{z8aVqYrOtN@Bx}i?skKR?8tcCo4Cb+J5_!}c` zZ{dkop7i|O17wMlMmAonlm1KE&nS)&<}~rnQ%+sY+$JQyLi2UF2Zkr>fB41Zcz z8)A_SFHvO60#=_zx^Z!~fVYM*Lb(1<)AKXvANMJCi=wt<3>_)TG_zu@6s;x$XBHUu z;svu{AqTf?67R7^6^IzU)^w3SS}+~HDK%OmHc;+?AS(}Cl0UW&bKint*s7O~@)lnW zZF&0;{(>R8RzkgrRq$A+?(V$>-FK{@(tBNys51Vp4&=J_SN<%@I*@-|Ph!5F2i3xE zW$DL4ap4+5kB1i_s|q=3A;5(6D9mxt%bIWps}_Un>bY4o%|~U)5a33hy*S$Udj4%? zCb)-q{mNn}e&3eooAIvrk=A6Qu9gMt9W#GZ>1pjXEgq;xSrpy%%!<5+Px`|3R zG5LqOXQq~)=w6avQ9fLI%NlEG?iKKJti;o;$f62~zgPl-v=-jqQUI)lpk_FT8n z_XQP72sHLyx4<*4hvo6nqHa3DJ)ZyDFE_XcDq@CdkQ#tQ^Fs$^cdazDgUHbB5SUx2 zJPOdWCWRQRV zKj3CN4(vf`y~2vd9F!1;VL9j%`VJs62H^>UgrNY?#lO!pM=SlZWP#EA@Tfoy2}Ra7 zPD}=P4>jT(v2S9iG(-w&5}t^RbCeFo607b2Rin=y#b?vu{(O2CIbi)5DH~@E z!_jreM5$rZrzDvRGsHLyr+rj^M0U?{*dJ)4af;IOq=3YOetd;eNbv6$zjsmog(sHD zT^;lf`^W~N)guoDNGBkqG`^zi(k0FFk1LeiPuaKqL4S4vsh@(uX)>LuD!ln1t)ew? zAq)OpX_~~E9w~B-m{!Mf_A%!Xvq82@o6ot>JNVi;B^i5GRuPB9_rRg+iB@^Ol zHWdRiVbi7lK!vulQ|?yt~f&06i+=KNuc1ANtpXAY8H7%=Sd*u*B`rDAu%FhxoFBq zDDAP*8w$DM5Uz1pYKQ4HO-%7Do5>#LAuws^fMlZqObaz>pE8v3Ey-6!LN}~6$W23&>^1+nBfBnM4xg2g9Fj}Qj<)AzcVU=R6IlUY4a@r}ltumYM->5S;G z%u4G`v15zijL;h`fo0y5f7TdrrC8>rL)MQ}mE5~WdBaEfH_DqV-cs>KDjWROfAIx8 z#(aDZ&$T4#S<1@XD87q#UKQ$!2|dzUFNGnFb@eq|Ps_2c{*dCG|8`Nd^ZSit7|y;O zm=(K#LxR@hk56IHCJPZ)d3OPaLl|CWr%vd4 z`BkN#RinyQ8m37v8zoB<$IJYP0?dBCUO}b}skXgcAy1;MBv_L^ zs65?COJF}DP-(pqZEuP0dcE@Nt)-h~*b(ZVQsHMuH+&;R1UBx4)Q(VYm`d+uZeaLf zX4yW<5IYHKZ#(spS(ZXRv1zXb(+!(dlqENSLrJ=>% zEIeqx?Ko$0JM+7{NrsTf;Zzi{S&wWV6lAOSv9+Z0{nQQ-M(ZXf%F*~qgzC>mVr5k2 z+b1d}k&Ctbt37YAABqYQM4Qk5QxL`QCr z#&%@us5Bbd31k%4&cet@f>e+37EKN@a?A(S`-p1$j)S6(_NwySnE_8{7c7*}(}5wmARRihQ8n3dkp!BP(dV zi@sJTyyL>DbiK8-H=;PUqSSQ!)QXZMg!1XzPHMYO7C5PwI*|=II!%4kf+kC^ctSsC z&{8wc3(O5}0Z}JhY-%ZcwbJdQ2GQkrs8#bf&yK^{(Obu9UaKPpZ`&$#&D}(kNr^@?NRb#u%CGZ8?zoFPL}{;C@dGj&IdeVnS0wR zO@+k~G0jw76=5W>S_#j|Th;Mk13r$@i8Ab%hCRjqa7qRPUxxP~<#W6&f8+bWW^sUY zt!oI6MyXRai!y?*KS7EkRe+PTL%1=Yfi{X+q1J?x;7z%OV(06{EURS&imfMaO}Y7e zyAROxZ8J79S zYn%~Xnai#^rr4>s*#Z}>=b#*rwOwf~O1G`+cyK|t>#l)ES0Dj126@_O;$I?=a4kG$ zVPuqR$g3L1Cudfn%-hug+E=q+fR$InBYs~KPmwfmE7ZTI>&_I{5*^x$+=MG5DsBPB z-SeDD`bj;SOy0hq-u5Wx;f0a!AOHBrS~7}HpXz0}Rmcd|IRUo^&soUvnl2YDxlHmDax#2VX zDmsuqi?h<%uc^@JJLf=*u}FWfWWs0tbO1Lwa&T#gbq0RBzMw`;T$9#9zry1^x;A80 zPOoAYsMNV|zPGRGy++p~)O{SDC@bPw8T=2jI}vqOfx%?i)!n<-G7>JTi8>OCH6SOH z9EPEQO-|&0wlCtN<|0_vxYiQ&_GD7P?AmC5kj`K+z~h;qvi60Gk7^K=+}GR405#(^;2pzI zQyK{{YbG#dwh+{t7gH1|f`;rG!v)1r`j)LiPxYGk!n z4+*S2;x~9id9-@S*7@j$MM*8@?*ta_Hes>5g=V7`AWqP-`De5?CutD*ZG7JKrwx|U zf-c-T7jbLbgK`M8xp38AdT>JCM$K->LB**7wb(?XPBaHSHTZWgymE3i+-|q_qi1g) zoHMj9{M{N`43%I7DxT*g(ZchRE{_q95mcmo^5FZAcB!6TDB z^^b%1_eM%B*$^wxnBz&>%wtarE-E0Yw^cf(ZhR>MAw@n>Uqcj?M4M--M~r`4s=y}@ z@5bo@)lSCnFBQAEnZ`TG-UWzo)AJUMJo-)9AhrqG?GU?J*o8m;oJLT; z(}B`A*D8Dt9wu#iy3J|8b4X!w#xy;Va;pHTfcG{SIJysS(~a1*0wyZiv0e!AIki}3Z zO7iTHq;_d*f|PB1vab#Ur-5s}LnnLyNscZMs@h+ zMZ@|a?`~b5qg_49KI!+385s)9Bme@c&s6aqF0X8@o*}P3pnLBWiZjXK1Avg)p6VD) zEVC23s-_a{LXDz&Pctm%ixO?9ncZ;V9-=%V6TFMKGHB^jVnb@eZDhpn69bnHTrVNk z&%T_$Ws3XsRFBNy(|7o zisJV`f=Z>vkwc8`y!i0~$i!h)n`W~SWD!?SdW}EoGFdIEsRxIin+`sTQjq}(Q#g*h zIe3c9WLgM1U`h18zJ)5%=;6lym=@Q;e~FXugdCAv(U&@v7nAJ;%!lfr@yDz`LXm`F z7_4DRG0P}Y#^Gq{dQ*21pGZv`3F>@ZM%^tkRdV2=TJc+Y#dI2#ly2hj)9=EPN0cRk zyuCa%#0{=#wI}D<{C@cW?e|iV(m^-QlJEmn)C=b|A)a$f z)~>*aNLdyEa)lx%V;*9zwpPqmP*eVIXr(=aBiOaIksiJHX@Zs^-mj|{%S?^!eJsCM z#Mh%4KScAdr5Ve}jTzfS*{vL(p$XSfj(g^VucHCuPW@PEvs!Z&a*rK9-?5I2;Ijrm+DbAT^tzN}`L+R(Hju$|+iLRn38&^USzAr+ zng3Jyy&_|ozpW@UB^xK{U`1I5Z*2M<`MsL7sVcK(vbL%$!#1Y7s&jx^WRXEz<(wZ8 zrDo`z14RIe&?ZapsNq8*6bthCg03-r6|?XTnNgLT#Pv)0HJA2qlOAv4wJ_O>-rMyFhJ_nS`J~Jt zZ&xE~1tNjQG6y^jH{;7K4f^&O%2a}ghbte-btUDSU%jb-S;4`ab@?~}lwU9a1&L^T zLejq~^KnRc>n*;grX$^oon$E7Odc6))_`V3&mKY|71FE}F@;;IsLJA!g-<>H)jrzT zIbhIJ^$uYu>mz{fsR!SK=0#1HwN1;<&$VF!~ zX*{51~~vabXRfe(EfQ-Wlo4N?~N; zVA#P^4iX}I&4`<58hNv#KIPK1z;u7@a;)f%K%l+G} zw)|>Cs6sU?Zj*iOsHS)W-iZva_}_I@U>jeY!;}ZT#K!Q0HIooFOqzr$+6GgE`b48b z>_#%Wupl9QfM#wD&pvv23bm5BPg#RnfB!yj1h>(Ta3t6Uqx`8Bj5p3HPiys(I9)YyOf%RRn?yS-B+f573e-?>9%mUB;l|{o50ss9H4N{3t5TtAQV#jt*V; z7V)UXRM*bQ0UEf~Yij&OklN65%3e0AUC~owsV0R8gj5MBm^sKMtq+u1`y4SsbBrqE z>0OY6Qr|CT1_l^3i6e4q^xjxHsjRMp;yE%5oiD0NgfF8;V_`G@?>@>NUMrr4NRi*P zPL#g)rdXlIi(WrZF6R|CD-uOIu2FWk;W6DUT~ZOTH$BP?1iob#P^PiN3eV0ec@7Yg zAhF_{e!$Qj3$E3=#*qC?T3zyGr17BdTD?S)60LozfQPr~vPZIKojYh7mN)uh9xAIS zvF@{Kkh>W5V4B$b10VjL;@x)~`0ySHo(DLN9yf0R;qC}aBU509^QiJZA(jlHHkksc zd_9}?HFX@|`(VR^EeKTCelDTg8$Qi4K7@UEZe+RJ`6aj^@cBsF4UJIBMV_<)b7j_og&;`H@WCRK=gEy5c z=nsm$y_p35z0qyR_=uJ!AH#ZDn>6%xOro-m%{MB69@YC{w*_lP;SU`wA|vWSUhlMN zeAt+~vTo?F-j&EDB^v4cS!)q&G^?c-=0LM_Z84?vqW*jiY-jsr$UbM_wDnhBFSIgN1HDA`AL2sG-?)b`P4qIQh1 zUI!jsJV$h90rO_(X~jO(yQ(ZB?7~c(tRtvv7D1ls8lYkt`+Ey`Kla)A%D;TIbNz z_!bmmR8wPBLAB|zfERWGk64|2L_h(ktTQZ>t_~+dvB!@vqHWaSpBSs6XmT%s2N1cd zDbyi0ujY@bI2+{jj69L6rg?CUY0QFe=47`}N_h{?J3SFQGb~uKIZeN$MKk5`=wTo4 zRE$7h=x7mQlP>#m)g7*5CUGVZbByQ*_MBMYBBab|2ok+{;dEg3W(cQK@Z;YGux{+n z_AYA_z28`a64e^UmW-iihHf6PjI@9RBSWpToSHW(kaQ>?N&jL_>`bN$x+*x8UYhu*5hA!xmvac?2}RIfCoU;liBp*QsC(B%7Np}(s+NFCpq7krSc9mM9**5Us| zLySEAfhglr2Iw->kR44rcPwfhAoOqyVh@KC7`J7fSD+r`+xDH3RCoH;0^$4{<=zBY zrHFTcpN+V_oKHO}D&`{01a~5N(D7F7^R6NZ^qaVn5NcOhJq+Ynkp36&ye-fU==>DC zEc7>0SRg2M4NX>8&?k*qWd_k-vQAB8w{{mP)J94gs%{Ajw*Nh`1Di@#*vRzgD*8c2w#?^{ zW2l4>iK&aJo}7Rp3#+R*KQ(3R)md;;Tv{NzX|b(W{bs#t*uHmdYWzd<+{uD~%IX_Y z&YngAEVclhg&y6Q;bo>f6A~W~AWW}|9$GKy0C9p1!ZsK$=}5b3=amG}FfG0U(#dCb zzRlNqRs&L3Z|h}UhuHv9_WtGZe70>FCvX3Wej;+9fQnv}uf>wo`g-}bbB+7T#Gx_7 zht>kd(}Ls)zCTRhE}d1Y!RdKUEHL_Gy}%Ex1@?~aAGFy18P-p+F#$m+HN>jQT6}21 zietU1lW83k8rzViz(`pD!5r#>g=0SQKS6nB;bn z=T3-#R?TusMgX^!cTeJF2$dY=Rt4@=Pw|i%+l|{#ln8Q5KTx59#oooHBTA`z>H#qt zbX%z}Mg1`=X4o=iaA_zX6oMF0yibX)ZwWV^uPH=%wm1^8q9H&?1vFOVe+^2}`ANBt z!u)#{Q(A7B%$pWOmvAzmmjU%XxMCa1qFy(>Ms8Oa3V{@u6Ub6Td&OULM~X3z*!TrkY>oK!7CoyEV7C{N)PwzMeqmvK%EoV60`By) zk3Taw0lhN2Ft|_@6y`>f>Atv3-ypAh@*MFga|pxbu1+`0W%@;-j+UUq_BH-h=wHKI ze{n;pjzT5ogiFrg;OD|XwUJ5QCT}=}%;H#rq0&`Zqkk1`amNT4A#4llr#AHqUFetf zdb`A@){)b2o-a5uK&+o{wOF{d+f#qi5TW=KF}+lZo{XRu^N!G6udH%UJt%pf3ep{V zq@OnhDk<{*n<-!}!A3tgHF)OfhdEj9v9k|7DH%Hr-9fML0~wTq{@|KP_B%W?91m?A zNZdO@Eer(BN^mjME-_-uFe*aW)>FM*O{L80%|2I;(H3l>`4GB?9+YWa$JOikK9>0o zx;6iRCN^Gz{=`>nhl#jWT=d|2uIn;a`-b5VRQrZ$P%fDT%**Dc3^v&z1DSmYmK?~e z6;&`VXnonBq24BO@t`9q-N%&ta#8j^(BhdpzVG z+&RQAFDY)x30bu?-ZQC6a+pwTKQ*lb|K&AmsC?9hif|+gCjS*oDplPe8l+mg*gQF` zNoPNh10HTCc7B_0($x!-X$I?eR;5aCW(kv0h1n-y9odFmQJKN?QY)fYNycM4j{BE{ zGzBW6ZAvwn;8JCjDbIz@NdPI~=NUC2rXJKn%^D6^`43UYn-UlF3up>lfR}M%Gs*VE zvl<^gpdY(nsr;TN{}}eH-HsGLUTYs(gmFyPE~zBe+HVofuxKoIRRgi0T`iNS(4fX+ z9cQ8xdYQrc2687-LTH-mG0u+A8YwB%@>0n^Is;0r2NSC_seMYlq=T=5IW#?0w@F); z{~FIm5r{pT(nH*?PX2*H>lWvDVe_28MXS!KYz;4abMOq>fMAt_XGM~&A|;-clL%9U z0%UchrmM2DrUX2#?8+T?M*}y42KHGFzRyxQ*e2kr01OTQm2irr zVPXc!;L$qA?yS1pHJmD;q+6z5J|KJ=@vDeR0dSN`S!b6u*#*60Si~w^wj}T6n}o|Q z(OXDJ(Uy9n4r-#E5poc$OrA(Bax2zk@+gj-Vum$TAyEeRjF)%_jHQsIr z6?FuTa@xm%5*HCQX;s>^FEcckF`iflbQ)94hvBoQ}o!cbqdda^cacMkeB7yG|xMDIN*n9f)PZiiZ*JpbqG%X%MEEpD7BDk#nmP&x z2pHdKrc9<4qJ3i+;+BRcLO9hUzphZ*99nYh8z13-Xrj}Xy8er!AoYl^bojs7V%m%b zXa-Lk>(xVDN9sHpHE6$_39==}U|5gAuu+etx!?vM^uPyraXFN!hq)T7?9hg9fznm9 zd5`O_Z)jY6b-{HWxEe_?m7`_`6{)g}yYDq^Fm*)Qba8=I0fp`h9v+`+=;;*7YpYrnM?||yhcp*?@ghvp-EjCDT4WC#j3EIbmF=rl6%zd*ukCX-7)FqVSTz*LHv=mf zC=0%3hB2EP`DY8ZEMLHbHUkNgY^f3Xks#89vI3n2=qG3ovH}|v+N=pH60Qv88Pznp z4PAqFk;8w$vSiMk)b!LJcTKHfV9m{mqb4^JK(W!GVn2QB)6>0#ZebQ%e4n;tkT!O; ze|c9VqE`W?V$uk?JafkU0667Wbm;}+fy%UQ3_8#(N;6QsmUn~`Ag)uz{Wn-P`vPj; zO>N871ANjRpnk^!-hV;6lz12Ds%f!*iK5s*R$5f#0tNhM=ZWVy7J96hh6w<@nB~{n zs}U1*SDFpi9H?*l?y*h1vSOTi!cW`tQR$fNuF2S7Zco z{+kPagG0O99P*FoPJ?!cLp*sN^uw>|Qw(ZFo)-Q`#mXosscLO<&uMVHqH58YE8%Na z{VaUUAWHq+OOyv{ezn{b9h+t|K495UrHvZD>R~!F@GcN247n3G9@HhI+R=SvrsB~| zTJq*}JSChE<5M)M1Xk-7>rTyE8KAI?&PkP4fd|WOG&@c)CgFvta*=dqAJr8k^&YQR z=aecmSuo3Kr}B6}kF7Jdg=S(EIaFs!sD~Cqjv1-qMiD2nz&50pUzhJ{z9Gq12yN&P zs+nzf`2~%^72hUE$mosjh^A^c9{g|m%P_yVe4I#2N^5UI1BUMa=Bh>>4h{rF_x*XZ z=^B{fCYnI_Q4nOKWcfX7Fhm<5M-t8O)*24odE#t{Ry#qn{^^w^9B0O258EWKnw}|i zuA`@^@1M?em)xsOYGP3&WjM?`QjxAKQPSs5rk6|EfMVAoq9`ARLFk8ZI{^5~a_7$0 z0EWatm~dFC2+FP%ln&Z?lxZ9!oe@%3mat9U2_P5`D%wgTgNzfPr8Y)9KN_NrJW9-W z8xXE67k9Q6<9H!Lpw`+tS2G&=ZaM<3JJdJv7t6!8zB{1T8bmR~VpNB)qSuOG`ud;< zHkXHKb#s^=R0p?Tv>INRe{8N*X8*SN>1p#18t2#+-cLrE=cU7u=az}%$Dum93vDK|HM0Wrilm{SRI`@l@X@avsq?$HrYah&xuBnLfEh};n8BY_QyFa?wXe{> zJRCr;EPrxm+^9P70-YK#_0`+OCxZm7m;y9hiL1_y2LSrY@`XEFtG-Q54sNVg@%XN# zI&mI*ZtjnUs`>0uI=mdMKhRqJMB1znYSo1?H};}#w4CsO{}At@VwlLvf-{iKBP&|S z@K<)nkq>*v=wySlum9y&nq6r3PQ&H6H$VNOWM@)r;$}x2;G%f`^mmH+h5gy?X_Azv zSlyieC4|3)5Q{ldO!yJk>|;iZuo|xKNYtS|*hPE?jC|;dR)gTcPPFLzQ=&Og61pP~ zy+^VjLBGsVMr}*;z;&a*Ek@`Tgid~=939`#KAM_ldZSSm`{B?@EmnBdn7Q3CjDY%z zLdY*Z;s0(L?{A`cH)8(~`8UTsN$<9v;`ZH7m!&XK1jU_6QI?ZpBE7b z;)uL@`L&fOCeSV)UJu90h6m9^?44^Od$SkWog*J>tcL~UNHF9W&7FbJyi5voszYz! zC@$hO2M_nrZ#40}BpP{WVCTB%KR7J$U$lKrlJaO+e{p$VFVc0qSe7Nh&0fQcEY^P`~i|gGf%Pe)`XjlZf?>p!RA38yi4xKPa;|PtY^D-*Rs2oAL zq^`9=hz9auR@&`I4}I1De8nkmqYs7ti@oX6=_Qc%Cyeps=E^UW>c<44XXw>L$F=TT z6BL@B*Lr-dG#2~WX*gVwCNLJy&3dHwe$NQUn$G+pLc4l0O`v}&IvkJ6v>c|mQgX13 zvIw9>jIu2Aaz7g;8Jb}GJ}kOX>A0ci72c6=o(_4Vft;?(Nk_7d$IW-WPL$6PVzZ0v z8L|r?21Ust&!f7}dWgTha-3t0e)PE>!9o=zN#>>T5YmPphGmQ{x~PCV@`2=FSbzyZ zs{msu&=whrh8GUQEQ(ye7#;OeIoZnrny6ZysCp@a zS>Prg=G0d_@XI6%0xui+Nj!`~T>E+C!GKc)5!sr3Xo15lh%@{<2WCfU=-H;^b+Gpf zZKAXBvspuTc|x7j#tRi2Hr~`Hy749=CXwZiIuGLmUri_HIj{2&ufo#5e;#p+)~nj2 z+*p9R7tGl=?Kcc+oLodi$B)ol4nZw&m1k?JA@A*W4shJ5GmODQBF}LHXXK8cg1|Cd zrcM(2UJ<|o;d*&F3Wo6TmI>67JWIVe9cI}uE1VD%ZCw%TQ0EoIAF%3SBW$w`=4E8R zV&D{RBX~8SRL&9ppaR2Ter5;9dOT-I9okopb=(nM#t`ocSpT6e25FI{=@0@Sf_3r$ z7mFXlf1miUGCRJXd!R*8@eJ|hmA$zL%jg+zf|}DLjjntd#TtT z9(QcQt{;pLY3628mie#_AQA&s!on-U5+Z5ZWInr8lR z2umn#54TKllfb7QCnJbHP7bd|Pv3*oxV(~%!jxSA8CvF8OzcI3J>4FE#>m3*i)VQU?(_krxy$TqtSac#iKzap;9EY#~RcpesEz(t`5xR3Ad;Nctj| zS~A`$wsHHd#|Yl(`uw<~GsF$%lvy6azcr$$s*zug`~Wvt=;CSvhGXA#M@cY@VUBPD zh@-gE0(d~P*bR#O4$!H6+cvT`n?PO$_6s#Trw+b%LGZl2a-8FiUsxK0AQ+YoWKS5G z;KYm(nF199s&G!Cs0*RRj}T3VuyOiV8pEmK70@?A2ad8kz^}GK+vtOK*n_oxiBlCh z9wRz%y#ss0{_wb?a^w{`uHhJ=zJ)i+k{Iqv7%@U8Bri5jETl_V6cJ|RA*=|2N0FPB z1!9b#K17aV+Y;B2IRBj9E)PF+V%*Waq*tGJ+W_FH0yUp~oh!C_r3q;Dg#Sw**lJF(@yB^F0c)Fhu0K zm$^;>v+nTd>d7y=)f0hjkEN`lw|P<)jJuu}4N}uc?s?Im8hPjNBevh>?Qpol zzVKtf_4>o8RATaFs8uq zpBBR;EuABa)jwP6U{M=I5UclKhG)zyyXB?|+vcm?;#keD%y)c#Kouzh=!IpI z(Rvi}@rqH7JGEq9h`c^OgSj8U;gFI>Q84n;2w|o^tR)WQC^t>Q5jv!OVVR#-J z9j6I`caYpO%wW%iy*x$KM_PnI296Iqc^D!wZ3sy;@sRWHgmF;@5MZ6s&pagHkMg^J zu{U7c6CI-7(kWi2`_6Q2G_P!K>#^+jdqz0!SVw*UtlEgz@{-Jr+zhE5i2d}^0JQ{$ zaJvUl23KB+LmUNg>LC^waiPNm86zQbwzH#O?pJyYDIIWLI(=wm0~@jp&!ZsI(OmH# z^bK*`5lg0wGD1QJ3RED|CxEjH0bLGCWsCyYyJ04U#E$g6s7!~hUxr}K`6zHHVPq5{ z$@Iul+lxIiSr?#t&h(ELC?BHn*&nmVZqOq|*W7G=dfbss!TJega`-en*uGuVMS*Yy zS5$^53?yCx-B}!uJQzrw5N>?8!0Aqq9}$GIK<1f$-;WM->ZsdP6c}Jl?X7~nxg*WdY8_-h%Rb> zf82?6=*N%`%V81W|7TDp3sn2aBIF|$g^R1G@JC1-MjUY&3{md`PS}*97LgYpBPc9C zdJx!)eO}cjl$WYx0Tj)P1=YDx8R0d>w$QRXX}?r)XdEt(R@VFy@)d@0ph^)mNo;f6|W?69bsIXs1H3J(> zhNT_Y>ER}oEx|%Zk5#_rCWm>uW>klHyJkN2+ubG*v2aSpB(;@ae%;=GO{OUMh~hG9 z`W&wsUmbVSL`p0)RwqLl4#ct})+0h*q+cR_I`&G+ScwWZL#_&M+0M}f z>Q7e>blmAAMw%=cIgl3@P$DgG?@&%{2qOpbX`=uYd)(9wVDAR4z^RkCu#bnRb%i`^ zw~US~R$uA4l={KlA7r3(W(p2k??$>|e|X$+2`vZ68X*n{W~?MnP;d<4=P9nE#2Hdn z1TvJ6?tkNfB z=kSjl!IAMn-w?+g@rYJN5PA~AL6O6)8pQ!Jm|*_OQQu?)AtWG836hA13`L~Glb~3ABE>lkQTiScU^z0^OQ1SH98sK)94{FS!y_}|pMBctQLcd7o>hVQYdzI(T$rs$5032OUd4JZ87en{y~mAkpTM+d=;Y*IdMS>PeqI{UBvO` z8R94qVBz`+;sSkyfx>KMt!D7(5? zGZ*DUGk?+=j&Mx&@e zwF_vUX&#s1ov`t4Uvej;m(TPU5hU@O>e-@PpsujlE;Lw|B^?*jEvlZl%8tOJ*-0Hs zckRJDDdS)L%m3N`pZ@oXZ|==z`^%qvK{?F*J2)_(IZu5bX@yYSQV#{_kj3mp@JHi5 z@J5I#O;P(MhJ@$j5j4M%L&@rK0>v*Jr2%ZHakXJ;*6>mPLfW~_go~G__}}@J<&#$3 z;&B_zQqs8NQ3nMq|FnN0ha)Ook`z@j_9iK^;b+qox%BeO+?>O5zjC}(g?B!AZH+^uRw+YVn*TqMztkW ze|OlYV^ot_0%1aRhtHuf7XxH!_ifa7DG@w&;=Mh0`|r`FrZGdRd(+#+6wzu zF-B5L-wd7fMQrPzK6>ovD@J4}6p{>P1rQf%bAcLD4smn(dB1GJT!BBl_yb)ba=Y*sW>ItaDDab_MV9ZAD>rIYx&R&Vo^#sdvwG}a3i|o!V@E-;gTgc@R+*qa9hu=! zG8%=WaIe95gQN(ux1rkuqR;|}QDyEywL?}PYL!NaO&X=PDgDS4^zFk@P(NChPaTbj zgnXzn1w|qrh5g*$rk~zndr9XP*Nz?O_yIBsVEsc7YEk<5e;^Q;cR)UQf|c zh&-(j*)mZ0QT`U*I=GgRq3y%yQ*HQ;bh>XHj&wRPvV7<;RMY>?dM#wC1|Drb*V{wp zU;S_Y(S^VIKPyNb7rhL2{2+-?dJZ}H(BwT7e*g)f%oXBRT{w9V3YTUv1f2k>rK3>{ z?G44uPzx(WtN{uZRvTWEG*)(+QGK148~ym~(DBWNY`^&r|ATW>p$={Irs)1Yf$xrb zP>S$^CdX51R$ENaF?6arv{LU;`W3aOCKsuXrdGuU+^&?1+vBtC?ZNJLvQM9&fBTt1 zi6&$N^pZtmyC2Qa>lpo$!JxR&Xim)pS=y$SknDmQ;9n@4NzFXz7DSVAG{f6TE)P%@ z6aCguEs4HKXK10R5+>%V0l4CM$+opvOeNkbZaP_SmAV@bb{5%|^*;50oz3SHfCXL6 zr`h%bmKJOo9Yb0B9AG#u&Sdmn$7(1hUsrEJfAYNvce~)ewY<)=$`Hq(dtBY{n_qnt zy>suoPycz}eFDk{1`p2`Q#1iZ!@J28ai}oP@gLB6&z~<~$sZIKQIt-hXTI1`57CrP z7qi!0*H26~v4uT)cTt=)o78gmQ9Z^9)$;Bl2H88GOefiCg0h%cFc+bvM2Sjz0sUOj zcXe`pIzNe4c))3jUYAr;4DV5^U|bwCfe&y(pr4lLghFf9-93eG!H0-ViiE>}sUBfZ zh@t0o%L^4uPhm&YUmoOFpf&4YaJE4IMQmQfaX@)AXv_5@yh2=PfCy35fu3H{{t^K- zcNg9qoZBk6>#o9UwJ|OQi4qnUM|o`XZw8_x{=KEzObpr@2~3f^l!d$N;eAbdC}rrzsDVu^{&tXbB~As zXI%~&g(0ZE-(Wq!A+aZ%=W=j)wiuwLGx!Ob+@2=_kS3DPD*yL9+rmEP&sN76*rt(% zEQpNsyz14%4ND73lX-Edf#qduXrdNgBCWgPkUQunJ=q0`t2KcYTB}8OYW5E4hTxlD z)iCZs(xG5nowP4u%p9->#?SMs?_f)D&^eer zNEqyayC`2I;?;xTU$|5!xbrSf5?~tVPq$%Reoc;%3^!J(i0EF8Z_onO?q~Z$Fu?)n z4!0s*`qW&tYAh=w;MQlZ4W5cz$<~d+gvV>(lcy(=^>DY}NoiPdw~?wp{vBJ+VwYgh zf{xu2w*rg?aV0VFzG+(nJ&xXdrALat9uYsd#^#My*2`}&5@5&2p&saWSco8|BUsR5 zDsF30(MkFoECN+Z6)jX_=q}@pAzmlBY)m4lISe<{mN(Jqn}s)eNl#q0B$aoti@7<# z@}V=h_;+@ajd_8>a|F*p)tD|HP|q{sxx%U+`wr&7ZP&5K+d{+JlM;t!htfAlYEaf$ zYtA9NZC%+^UoOoo@4SiZQ&fiJBdXhA?gF=s7 zbxhUgW(;Aj(GuCADfnl(hGYytUXB|JAPFC!=ExHi4MkDD;yL2-7C>%xvJ@;*y{m)= z^p)q^BzcZROl~6$VV{A=cMk;y(2YVJrum&qv+2G2B=+e}$HbMu|C9g^IRlqxb^)Rw ze_bZq^Ty{|Xq2zbFB-Q$bBCVec!r>M5VJB>7H*~8K9?T?d_rQ(xW*{LK0&Fv+yZ6T z2}3t=F7rN6@P7=1UgB$-uVLHITY_zC{iG+$c#bO zIl+SjutQF;gWAP>(@;0{y&Of})HEN!^kf;|^RR6LznytH>w7@}U@f0RWT>VYfk zRQn?tS0Ieg@Ux8`EfDoW!;d`_KNdZtU1o@ z@AFR>M9TmjIIMs}?3-GHm;-!D;HMwe)TG$Xv2zx=D(bl|3jlDptuJc=0k zK48xVY?s=q)7+LhCEL8L=^pHvPFcqeH`RNxJ0%UU5w0l>^Y)p>W`AAIofNcZ8Deo%QIN2Kw7` z(P(;CAIUtttNv+5>+gtX(O!p@fqLB`I_6>e&EN5r>w#sEN;|9#cw~imTv^I1Yb|sQ zuqg=smp4R9+7Pr6549f9Vh3oYjoan~LJ`S%KwJ{64l+o>o`vd2%m>QI>kX)OC9Xpp zD7HBBVIc;Surc;@HQO9!*sa+m){QPJ+u#;N-hszr%3h8WHW-}Qp3jVVr?csXVOWRd zz1ksGwOv3zIf-pR;#Q`8K{FlL!3mm?7(FY4Q*x-tVxWJYW;{=FnE7!9OqAP#T`SC% zV0t8XM$_Z)0NfAE)8_C#XerJ1IFN+Jz6Q4DUn(#wF7o^CBd<3SAUw-_u6}5m=CzBew&=o0YC93chj0Yn!J(W7&#H?>FVbAw zvzuRivLZ}pqjIZ(l(os3odmnPMFO$-?iuTU`5LLuh8zU2WCP3KJMim4KfAOwfg_Gix14OlLx`WDFKF0I&|X`O*tURu`UqJ-MQ|6A zmJ#)5=F+XTY{4N{z_~^G11U+w2QpDK9zOHEr_Vh0$4?s09Yx)0apDF&q1{}&Np=A` zGHDTYEcAd~`*QaR*sL|=tJd)76Hoo18c(jZBhP=mLSfSaxXhn~xlh0+8^DC}1zUHB zFv%0g_7cr6b&6@1dO0D4)Y(V{jBhGk3jG`2t^&|M+R zsQElDiy1=o1~}0W8uJ+}VzkAbWETX=W-fS~p~4C?RqH>DK=%Xds>LAMfNn5&nAG+! zk#&IiwJeU=I&-!}q*yl6(fSfGSsX%!`_t9}ESUut%$>|HtA%@$F+C<7*uu#D>RbvX zm^!lD@iK_UZcUujrrjLut#kN+h^g^KpMTN(_BUU;4Rv6}mu^Fx!e`l?%Ka>UcU-fT zdqru!N**+cc=_Bpwt&|9u9g{zvB+IV@i)lnqN|lT3fKjSaFt}HVj76i$uT0P$n3R_ zddVpCguLf!0(~@ZiHTG#5JtDmI-tvKwZ0_(5!@m8n%`*L?aAaQYdb}@Bbpxj+@srB zc;E-JCM9SQgBe2;-m(2s-Z_F0nb3%T@TQc#j$du8km0AdT)A@9mh0gWY0}(%K$Aek zqbVp5ikTfvpx`j4EfA)C9E9Of&+K(3r91^yPei_l`8QBAQPA6SBNE7DG z36|fmj~inXRg{QT!nd(M?(pdRVLfH-^{PKX5F;U0OWQ*0)xp;QU7kE(Vi0H7So~mGR9U1ZzJK#~{ugCB0@%;$xJvcKsX;LXKi&fI zX_q;Pxf^Uhtn?-lc3BUru0vAs)BuAMD&htX&N-V&3952IasVXVkj%oh+zOriq016h z$krfmFjoCUf3-EhKL_{c8-W+72l)plw)XdT=SVD~u3DSg!m$Z=*Xgb7bTQpn%ugqK z`;!bsS5Bi;s)GvH$ocdlGBP~|r#lQp@SeeJq}*XMcs-Q~Dchc87j$^++3%el=qJiu zrtLDt_T)T;yV7340O6&{LCqS33NE4)85r46pP|4PTvlKr{AnxNvo^@cEGAaRY6Z1n z2GBeU6ZUojElb(@L_Gkl+0X@R7d^Ay{yy_T>ZDHSBMeMt`RVQ1>_Q5pfGDOpv_A?q zQGn7Az+AL^*K-D2a7x117La}g4=Gt8JzxJy-w_biS5??(Ywr>VOsg3f5Fp!xwS8Gw z%XqbefU%nR$Mt*6%7Cke1q-${1XaVnkMQ6P-U7l#zfTs7CLD!0|NQ%pocYf89;qo0 z4zsOA$}}fsBTkb!OcUeRjrDBEdNve5RRGKmj3+?JJ~lbu{Ob2$U81W zlCx!NCSq8NzS*hNn(dEhHa02U$z&fi_tqH>aF3cx1q!T2R(tgl0btP_M_pDi1FMH@ zosVu+PZ*$w+Rc5KeU#8f&gKKC2HYQf7)OvE$Bi%z6j22>+XL-gPKTGK?{Qu z^7bhesc;J7KJJ%nAGsZ;2LJAbSKzr?b@*?$_M>NSADlC^g#G&9Bx#Cd5IB_RO4pO< zRjr)zR&&Zm5X|xs2A~lMa{_N*WB7#*>#4yblRfp1gZKAFx(C4!DZ6%{&GJc_J0deJzc1A9ez=WfYn;DXi#FQ(E zNJVrYAQ$-(%*#n@(3cWyvSbfJYEFXOQi~SZN}ztn@;Mestyo2ZYdex2=T@!E?o0HL zHQFWtttY&b;m|ee8yQ4oc+@Wx_R@UDz;^`l^cFUj?2~JzWe>CAd^6jgK_wk`ukzI4 zR>?!?oxi2!h@KH2r4f?_<#tRFszC@k7z!$!pR7t+8PapTCMGfqw7h5ts6}DjOC;Lv zV{*cF)3$b12(uw9u@R@1l^8Jqs=Te2(RR|^rd`Tg_&^b!9c*{AoJ>J95Fj~bdSNU4 z90p23(+Fk+3(z;$DtrzehLlc8QzYllA%!)}JY)w|fK;;K+hE|-T7Xq@HIoHKCMwyn zUJ2Rt3M4$zlJw_5U}gRj!%iirS_8gFKxqK;lwuErn=?;8Hh?JstO?#v<)9)TP!+6D z9amnHj%6o{4DKD0)RcP_pAeEU4T4E38y@2vk{o0dQg;M18h`I@<42Nk5m#1>$+9zE z>}^|X|6^MFGv9xr5;%8B76gPiJz3k8UTWRf40-hdJv%k14<9rYh@$C)svq()JE2>- zfi=gYi*W)&A7D9Ol=M$F#c^yND38blJ4P8J7`&#$hSY@HM3A;kb!-(1Nfn2#mXJ4HsnEP=jm=j&vK;=5(8n)fEub(~B4n9_7&_FJ(HtcBA#s;LKuo?DGi7@;W~$3?U-#mwm33~+%} zOQQGH5x-TDMh`ds$F#T({!5&MCnVc&HHbcyD$rdYH2zp2p946+8m2nzxsLMDcM+dR zO&bZ+xyvy3;BMZX?d=Oeyrn0j)2O6$6PTZV7p4uOED_}G<*7~IAfatOa67t2hI?ZNfbSV50w{1DB*mS!v?H)d=TWw&yCh9+D` zIqsS7L;1ZjHg)R9N}Fwj%*&?-Z=q8|X7RqIA@>a0J~6F3mnr&=b!7Oe8Ypio$!yT; zQj+D{21MFG2Geb;$=@fOn#W{qHMwVg_`RBY>Q$7Pl8uveu%ax3H#QBgS7Xwqs?3@R zDaMjCawt_Mqkb>E{kq8;E^GS zYezj~UCNGx$WAh?0xE6=N}W_oL$1E8;ce35`O#PccCGu^t#o(Jyle;dYN-uUrt*mE z%knzqgceAx=4G2h-mXTZzz_Ui0*!@|aY-7{U%%Yapl_d%3@v_CN%`hiZz}h91qXB1 z<>LfU^h<#e(WHjiu}pkQJru?rtN6RU|ZndX=Ie#Jky=Q9@I% zsVOfZ8g|PH+*m44Mptx;dYOHrh`LAJA0=_VB{@RfMijQe*+Mqk$RiX?t}NtGC6&^o zwnBm}-=}cna`361>QzdSXljkjscWr~vnaM_sG~z}DQHM%wFmj>r_Ms?oz((8%hEg{ zLT3=lLqN?qj$Uo-&5HU|B)Wy1`;~q~rhwW2fC;&rkdDi@ZA~AFoUPMpp;UFHq_bV$ zP`K(KFv7or55O~_3|@!_h+)-QpbW1Te|=h98eg2ll!w4_8^aIQOhN`EfF}cdf(b|` z!6$kuu^Y+g8WY!r^m`(I^ud5ysY(GXk#R_NE?8oyH~u(EIOLqMiWC zW)raQnENNoCV|kT+~54(Uq8jlEkD7q0ccK*a4@Qjr*}co9a>(X zR)2GycBf*;?Hd#^CnTLz_W4Uev~N6ix8X6}EnQL(4X+Q^4JrQ6VTEUBl{^OsVWn># zEMBf2>H|gcf@^iXk6|D)X;ocD8V|x!6fu#Bw_~60v4*Dd2_>wjd13tLL#bdZJK%iG4J6h73PkY#I`kkb?HV6yj($;@;d3vSa@ z2@=*yaOx`%RKp!DQQ`w*Win=~_RR9clZHp$0IsY`zSOW?vLK-IDCJpy9zysC=LdD= zAsjr{JH`eWk1hS>o&y$7UkQO5gH`KpraCNR$#rOMze$h8S4~RPv)nRf;i#o1?ft2y z1R0-S8c=Mua^{*DDn!|G&m);y>f+I_l4}fdG4}XLYxY^jvS+Kj(i2vGN+s@9v&k}W z%5>m5<*cjdK>Q~2bGnS)I{X$;fz(k~TW>-4{}SlR@N{ccXRn%k^;QQz&?RjsH&a7R zL6PR0*BMgc<~0Jsbl{y8>&4$1MdA>8_fQouMImrNHU5vTWi#3jp^r@3X29Q^d{Gn% zC>P1c225zrkkjd=ZlA(ElaQs7rv?pD$S)ALGw`m`luRg|C~yJdQqy!r>n_NN#nD0u zlyiD$EI|~HU-zsKbsmcIsM2Dwv8SJz7s&sm(vAADAi!QSU62Q?m!YmHr!Roaocqf} zBB{{&c_tDmWd{+NnK&ebPgy6PoHSn+dxYTto~f>4k4xpggOv$#rj|s<#7D;hMw7Ic zvvYK`#o-6pT7~xuzh#4(;!^5RffG?vmYyp?2g6czSmFUP3b9%hJ*rRLCp=@v8tFo@ z)_37mLHIPZAGm6CWY9dPtx{$j9fIh zQK2xC!&&j=S&2WnC~Z}xtX*omqsH@??}D+!?v5Lgu;Xg9#)C}{z3hh6RVZE_p}xbF z<^TOfY`43(1ZDAYKKuBny9Xe(90Mt7JSGa^e^hcW{@QeWG=FnrbPiaqKxN1 zeG$-M{lpF*=bv~hWV@ykoK3tt1zMPm{9&5@YMSrK^B0z91zPPhx1t41|3~W;*I!b5B7_qm83TmPy^2;3-P?)bfB2_W_4(scZa)sA zEJRzEC`G5Uy!6p!ZVSB1Ute$Sq^L4Qo|= zwT;JScfD2R_J6L7F~0^{q-)fLj$SQN_u_w4um8?ey*P~N;|nf;agbr;%UT$m+Hrhp zVcbw57c3k?skNlG&$kA~b=Dg@C;tCK?Ta@X7rF`gUR70esV}uBWa+Qao_^op_;Lk{ zaY$!l3)BBMU-^%}WcvrzJ^CGD`-ihhe}UDI4zw{J;xagt3*ZZ_k+i0je*J1eop@~8 zd;1Cp9f^6K)nNl)GS8LFQwNeLrPREYe%nQCdLw*(3&m@0D$`dLPhuy#c$T?KxgU*~ z5;CgEZKU(Xv_> zMQ8MO_55T8njk~RK92TwE99-oprHNCfv?}??(5kTX(x_)jQQuQ^F6onzByy=ijaB{l*%UR`OfxQdM&w1(J?h zh6&LjKb81*#LTG7Z_~PI8fO)tOuXu@q-{WN)Tp)S|J#S^ z&?z)vcIZ?C>fu*N1m8WXL{MdnSTl9ED!uhIYEYmfCFqtKqEJA#UYVAn<&cW_&?QC3 z-NDCddMZm{^s7>NASJ_+GU_(!{TvdHus5 zwab*cX5Lj=jFKhWr=E0r!?U7465K=5F+Ud%e3H z%Hdm3Rs+~oPu6HX`BJlZNpH(ZSeRPXK~}Yz{8gi5z#&>pzSdd4;?V6LU#|*MSXbNO z+dQH!QQf=I8e^UIj<2ZF59arWY3ukJ>0n1{=lJp+v~g7N%r8)s=g*hl=BVZsVXT`* zbh@Zc@)J-?&Vlinv_`-7V#*_Mu9(c!Z^y@ z(GWqRiR;IXgP`?dloX{`M7a|c?+P3woOk7H#V~a;-}mCE%-js)C1qOrSro@%nZ};) zVPuT&hkl&KLqALWIEVqpQ51M-6a+LIb-5jXA+u35FVD6LfQ1j>xyi^&VmBzmY*=6~ z!#K&3AV{;!3!=zLMoHk8vEzCfHXJ!l7{(={z{`;v+zht|X$#*v?oLX@fjMuXA~he?5Dre5rgMj?WC{URt5$4!T!7e$4e`WYgBL4ODa z9!A&bSPFUdO_GmBQ5>cqb<8pxCZ1Oo1@P&mI1DH&F>=!!NcBe0N+ z&+-Cs(CO<0Cr&Hrn_(1&`OqsyLnn4T0HpNGC@O=(Er(&`r)3H{z&Qd^f+BLGxCn+p z91Q(33`#%Bld7rl>Wz#%54+%@fsYh0KXYPQ|C4PtBv1rI|H_zpqzWt!rD60iZx<6#eJ=(|xEdBA--%!`=vH&PU$^nxG` zlUFr9`o=GlBu$28oJCnOa)D_-iM=EX6Bi$cnV*zNnC4Crg@FUE8H~ITh;tLq2|{m} z%4|CY)0*%*qgV zMd%Nqyj{e7oJ?0wlO!HaMm8F`Wf25PH1tPK5$E|ZN!(Fb`k=T`RD#8N!%>MzLqy*v zK9*8|9C9aJ5k}t!y)camCn<-1G6eL(vhWIE*me9M$bt|jE&(w)Q3O!BMHvvYPg6Hc z0~h}(lKh4aYu!!uaW%|ecn$7$N{1f zX#@#&<9wFQUwHM$iy2jNc;TAL`r^gRe{yqNA$Wcn1(@^KNp!@0y0d$Y%pNG>QeypE zpS__|$k4v>vztik)$)s~Ch-ayTcRq}E8x?JPI%!u%|+Q}oL=^~uTyO=bdH!^_~~mX z_MrbIySN2*vZ0F_Y!HLTBK1~ZBThp<{i^)&^u_gVi5oUXUf0Wq=yJ!{y{1>osm<%H z>UBzz8H41umOng=4CB4|=^rIKlVTH5DJVy_D4sw4onn4rf40m0F{ni6od4BNjGW42 zU63!)_;1_$-^}J0-_{k+wt;iV6ZF;xM2&OR;J2b)dY6M98ZcCJ*!Z!MtNPDrp1CD1 z#R7M6kmg|crI*EdHVnWthlP{+0hqQAE-(b&3}f7FE=1K~Ryf|sbv2QL4(C68RUIV! zLn{eCH8rDuB7qAps3Y+b5&lnJ0_ZON^EddI^PWGuPUS8Efn5FhM!J}6>wmunS1?ML z7Wv=4wV0v@9KtN{nmUqyWs~*t+yC$%4)*sJ=!lGR2FV@-_Dzyd;piHixEG(HzDT)$ z@2SDPME>V-i0(Z(D7F#MQ6}`ifAJTGK8eB!mcyPYAAArcZiV^WYtQnAw(~(N_?Kt? zkAHpdqwoCwE`kDy$si{YCp@2I`$lToRpJ-i6=t#f*$v6&qpmFY`zrB+`k}&t{CyKc hDHdA)!qsNMh2)p(fH}AlO2m>s@Uxfkdv@Wo{}1UJn6>}_ diff --git a/docs/run_results.json b/docs/run_results.json index ac502f5..a11c67f 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.3.0", "generated_at": "2022-10-28T17:32:15.977598Z", "invocation_id": "c76e3be0-5ad0-4997-80bb-3cf2302df867", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056666Z", "completed_at": "2022-10-28T17:32:02.085812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086542Z", "completed_at": "2022-10-28T17:32:02.086556Z"}], "thread_id": "Thread-2", "execution_time": 0.03435492515563965, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056855Z", "completed_at": "2022-10-28T17:32:02.086034Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086769Z", "completed_at": "2022-10-28T17:32:02.086776Z"}], "thread_id": "Thread-3", "execution_time": 0.033918142318725586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.057044Z", "completed_at": "2022-10-28T17:32:02.086117Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.086879Z", "completed_at": "2022-10-28T17:32:02.086883Z"}], "thread_id": "Thread-4", "execution_time": 0.033473968505859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.089915Z", "completed_at": "2022-10-28T17:32:02.093987Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094470Z", "completed_at": "2022-10-28T17:32:02.094476Z"}], "thread_id": "Thread-2", "execution_time": 0.006161928176879883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.090000Z", "completed_at": "2022-10-28T17:32:02.094080Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094550Z", "completed_at": "2022-10-28T17:32:02.094553Z"}], "thread_id": "Thread-3", "execution_time": 0.0061359405517578125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.090074Z", "completed_at": "2022-10-28T17:32:02.094156Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.094626Z", "completed_at": "2022-10-28T17:32:02.094629Z"}], "thread_id": "Thread-4", "execution_time": 0.006162166595458984, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097480Z", "completed_at": "2022-10-28T17:32:02.102069Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102591Z", "completed_at": "2022-10-28T17:32:02.102596Z"}], "thread_id": "Thread-2", "execution_time": 0.006793975830078125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097559Z", "completed_at": "2022-10-28T17:32:02.102155Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102674Z", "completed_at": "2022-10-28T17:32:02.102678Z"}], "thread_id": "Thread-3", "execution_time": 0.006827831268310547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.097635Z", "completed_at": "2022-10-28T17:32:02.102235Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.102768Z", "completed_at": "2022-10-28T17:32:02.102772Z"}], "thread_id": "Thread-4", "execution_time": 0.006855010986328125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105546Z", "completed_at": "2022-10-28T17:32:02.109491Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.109954Z", "completed_at": "2022-10-28T17:32:02.109959Z"}], "thread_id": "Thread-2", "execution_time": 0.005962848663330078, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105625Z", "completed_at": "2022-10-28T17:32:02.109575Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.110031Z", "completed_at": "2022-10-28T17:32:02.110035Z"}], "thread_id": "Thread-3", "execution_time": 0.005985736846923828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.105701Z", "completed_at": "2022-10-28T17:32:02.109651Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.110109Z", "completed_at": "2022-10-28T17:32:02.110112Z"}], "thread_id": "Thread-4", "execution_time": 0.006028652191162109, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.112926Z", "completed_at": "2022-10-28T17:32:02.118348Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.118998Z", "completed_at": "2022-10-28T17:32:02.119005Z"}], "thread_id": "Thread-2", "execution_time": 0.007712125778198242, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.113000Z", "completed_at": "2022-10-28T17:32:02.118487Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.119086Z", "completed_at": "2022-10-28T17:32:02.119090Z"}], "thread_id": "Thread-3", "execution_time": 0.0077779293060302734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.113071Z", "completed_at": "2022-10-28T17:32:02.118591Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.119173Z", "completed_at": "2022-10-28T17:32:02.119178Z"}], "thread_id": "Thread-4", "execution_time": 0.00789189338684082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122192Z", "completed_at": "2022-10-28T17:32:02.147397Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.147931Z", "completed_at": "2022-10-28T17:32:02.147940Z"}], "thread_id": "Thread-2", "execution_time": 0.02731609344482422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122347Z", "completed_at": "2022-10-28T17:32:02.147490Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.148023Z", "completed_at": "2022-10-28T17:32:02.148027Z"}], "thread_id": "Thread-4", "execution_time": 0.02715015411376953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.122274Z", "completed_at": "2022-10-28T17:32:02.147566Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.148108Z", "completed_at": "2022-10-28T17:32:02.148111Z"}], "thread_id": "Thread-3", "execution_time": 0.027777910232543945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151143Z", "completed_at": "2022-10-28T17:32:02.191000Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191548Z", "completed_at": "2022-10-28T17:32:02.191556Z"}], "thread_id": "Thread-4", "execution_time": 0.04194784164428711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151222Z", "completed_at": "2022-10-28T17:32:02.191097Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191641Z", "completed_at": "2022-10-28T17:32:02.191646Z"}], "thread_id": "Thread-3", "execution_time": 0.04205679893493652, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.151057Z", "completed_at": "2022-10-28T17:32:02.191169Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.191781Z", "completed_at": "2022-10-28T17:32:02.191792Z"}], "thread_id": "Thread-2", "execution_time": 0.04295969009399414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194849Z", "completed_at": "2022-10-28T17:32:02.204631Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205140Z", "completed_at": "2022-10-28T17:32:02.205145Z"}], "thread_id": "Thread-3", "execution_time": 0.011619091033935547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194765Z", "completed_at": "2022-10-28T17:32:02.204709Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205223Z", "completed_at": "2022-10-28T17:32:02.205227Z"}], "thread_id": "Thread-4", "execution_time": 0.012217283248901367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.194926Z", "completed_at": "2022-10-28T17:32:02.204782Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.205307Z", "completed_at": "2022-10-28T17:32:02.205311Z"}], "thread_id": "Thread-2", "execution_time": 0.011977910995483398, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.208007Z", "completed_at": "2022-10-28T17:32:02.218289Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.218491Z", "completed_at": "2022-10-28T17:32:02.218497Z"}], "thread_id": "Thread-4", "execution_time": 0.011612176895141602, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.207932Z", "completed_at": "2022-10-28T17:32:02.222536Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223068Z", "completed_at": "2022-10-28T17:32:02.223073Z"}], "thread_id": "Thread-3", "execution_time": 0.01660013198852539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.208080Z", "completed_at": "2022-10-28T17:32:02.222629Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223160Z", "completed_at": "2022-10-28T17:32:02.223164Z"}], "thread_id": "Thread-2", "execution_time": 0.016391992568969727, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.219397Z", "completed_at": "2022-10-28T17:32:02.222992Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.223975Z", "completed_at": "2022-10-28T17:32:02.223980Z"}], "thread_id": "Thread-4", "execution_time": 0.0056111812591552734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.226011Z", "completed_at": "2022-10-28T17:32:02.240372Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.240849Z", "completed_at": "2022-10-28T17:32:02.240855Z"}], "thread_id": "Thread-2", "execution_time": 0.01633930206298828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.225921Z", "completed_at": "2022-10-28T17:32:02.240517Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:02.241083Z", "completed_at": "2022-10-28T17:32:02.241088Z"}], "thread_id": "Thread-3", "execution_time": 0.0169680118560791, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.056437Z", "completed_at": "2022-10-28T17:32:03.393615Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.394053Z", "completed_at": "2022-10-28T17:32:03.394076Z"}], "thread_id": "Thread-1", "execution_time": 1.5078966617584229, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__calendar"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.243054Z", "completed_at": "2022-10-28T17:32:03.614339Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.615002Z", "completed_at": "2022-10-28T17:32:03.615007Z"}], "thread_id": "Thread-3", "execution_time": 1.5109260082244873, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.242974Z", "completed_at": "2022-10-28T17:32:03.614395Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.615094Z", "completed_at": "2022-10-28T17:32:03.615098Z"}], "thread_id": "Thread-2", "execution_time": 1.5120048522949219, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:02.232403Z", "completed_at": "2022-10-28T17:32:03.614201Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:03.614792Z", "completed_at": "2022-10-28T17:32:03.614799Z"}], "thread_id": "Thread-4", "execution_time": 1.5492050647735596, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.609783Z", "completed_at": "2022-10-28T17:32:04.930210Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:04.930772Z", "completed_at": "2022-10-28T17:32:04.930811Z"}], "thread_id": "Thread-1", "execution_time": 1.4638330936431885, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.757155Z", "completed_at": "2022-10-28T17:32:05.184990Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185633Z", "completed_at": "2022-10-28T17:32:05.185638Z"}], "thread_id": "Thread-2", "execution_time": 1.5716450214385986, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.757002Z", "completed_at": "2022-10-28T17:32:05.184664Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185206Z", "completed_at": "2022-10-28T17:32:05.185215Z"}], "thread_id": "Thread-3", "execution_time": 1.5976057052612305, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:03.776743Z", "completed_at": "2022-10-28T17:32:05.184798Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:05.185424Z", "completed_at": "2022-10-28T17:32:05.185428Z"}], "thread_id": "Thread-4", "execution_time": 1.5779471397399902, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.078040Z", "completed_at": "2022-10-28T17:32:06.504185Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.504551Z", "completed_at": "2022-10-28T17:32:06.504569Z"}], "thread_id": "Thread-1", "execution_time": 1.5718729496002197, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.357170Z", "completed_at": "2022-10-28T17:32:06.805413Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.805619Z", "completed_at": "2022-10-28T17:32:06.805626Z"}], "thread_id": "Thread-4", "execution_time": 1.60520601272583, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.331780Z", "completed_at": "2022-10-28T17:32:06.805974Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.806310Z", "completed_at": "2022-10-28T17:32:06.806313Z"}], "thread_id": "Thread-2", "execution_time": 1.6324999332427979, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:05.357005Z", "completed_at": "2022-10-28T17:32:06.806082Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:06.806385Z", "completed_at": "2022-10-28T17:32:06.806389Z"}], "thread_id": "Thread-3", "execution_time": 1.607996940612793, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.652794Z", "completed_at": "2022-10-28T17:32:07.956757Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:07.957316Z", "completed_at": "2022-10-28T17:32:07.957340Z"}], "thread_id": "Thread-1", "execution_time": 1.4652929306030273, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.119142Z", "completed_at": "2022-10-28T17:32:08.155707Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.156070Z", "completed_at": "2022-10-28T17:32:08.156086Z"}], "thread_id": "Thread-1", "execution_time": 0.038806915283203125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__event_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.158174Z", "completed_at": "2022-10-28T17:32:08.175239Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.175507Z", "completed_at": "2022-10-28T17:32:08.175515Z"}], "thread_id": "Thread-1", "execution_time": 0.018657922744750977, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.177431Z", "completed_at": "2022-10-28T17:32:08.187210Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.187489Z", "completed_at": "2022-10-28T17:32:08.187496Z"}], "thread_id": "Thread-1", "execution_time": 0.01214909553527832, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.189393Z", "completed_at": "2022-10-28T17:32:08.194322Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.194550Z", "completed_at": "2022-10-28T17:32:08.194556Z"}], "thread_id": "Thread-1", "execution_time": 0.0059702396392822266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.195667Z", "completed_at": "2022-10-28T17:32:08.199485Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.199681Z", "completed_at": "2022-10-28T17:32:08.199686Z"}], "thread_id": "Thread-1", "execution_time": 0.004740238189697266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.200690Z", "completed_at": "2022-10-28T17:32:08.205131Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.205328Z", "completed_at": "2022-10-28T17:32:08.205334Z"}], "thread_id": "Thread-1", "execution_time": 0.005331993103027344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.206345Z", "completed_at": "2022-10-28T17:32:08.209632Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.209811Z", "completed_at": "2022-10-28T17:32:08.209815Z"}], "thread_id": "Thread-1", "execution_time": 0.0041332244873046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.210786Z", "completed_at": "2022-10-28T17:32:08.214890Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.215074Z", "completed_at": "2022-10-28T17:32:08.215079Z"}], "thread_id": "Thread-1", "execution_time": 0.004953861236572266, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.215966Z", "completed_at": "2022-10-28T17:32:08.253140Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.253340Z", "completed_at": "2022-10-28T17:32:08.253348Z"}], "thread_id": "Thread-1", "execution_time": 0.03803396224975586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.254254Z", "completed_at": "2022-10-28T17:32:08.258142Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.258311Z", "completed_at": "2022-10-28T17:32:08.258316Z"}], "thread_id": "Thread-1", "execution_time": 0.004662990570068359, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.259164Z", "completed_at": "2022-10-28T17:32:08.278454Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.304997Z", "completed_at": "2022-10-28T17:32:08.305006Z"}], "thread_id": "Thread-1", "execution_time": 0.04673290252685547, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.307020Z", "completed_at": "2022-10-28T17:32:08.311075Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.311248Z", "completed_at": "2022-10-28T17:32:08.311253Z"}], "thread_id": "Thread-1", "execution_time": 0.005108833312988281, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.312165Z", "completed_at": "2022-10-28T17:32:08.315173Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.315338Z", "completed_at": "2022-10-28T17:32:08.315343Z"}], "thread_id": "Thread-1", "execution_time": 0.003793001174926758, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.316213Z", "completed_at": "2022-10-28T17:32:08.319127Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.319289Z", "completed_at": "2022-10-28T17:32:08.319293Z"}], "thread_id": "Thread-1", "execution_time": 0.003663778305053711, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.320138Z", "completed_at": "2022-10-28T17:32:08.324703Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.324876Z", "completed_at": "2022-10-28T17:32:08.324880Z"}], "thread_id": "Thread-1", "execution_time": 0.005329132080078125, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.325813Z", "completed_at": "2022-10-28T17:32:08.329593Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.329775Z", "completed_at": "2022-10-28T17:32:08.329780Z"}], "thread_id": "Thread-1", "execution_time": 0.0045812129974365234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.330654Z", "completed_at": "2022-10-28T17:32:08.335223Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.335392Z", "completed_at": "2022-10-28T17:32:08.335397Z"}], "thread_id": "Thread-1", "execution_time": 0.005346775054931641, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.339835Z", "completed_at": "2022-10-28T17:32:08.343547Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.343719Z", "completed_at": "2022-10-28T17:32:08.343724Z"}], "thread_id": "Thread-1", "execution_time": 0.004494190216064453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.344564Z", "completed_at": "2022-10-28T17:32:08.348282Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.348449Z", "completed_at": "2022-10-28T17:32:08.348453Z"}], "thread_id": "Thread-1", "execution_time": 0.004469156265258789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.349290Z", "completed_at": "2022-10-28T17:32:08.352945Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.353109Z", "completed_at": "2022-10-28T17:32:08.353114Z"}], "thread_id": "Thread-1", "execution_time": 0.004397869110107422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.353946Z", "completed_at": "2022-10-28T17:32:08.357813Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.357995Z", "completed_at": "2022-10-28T17:32:08.358001Z"}], "thread_id": "Thread-1", "execution_time": 0.004648923873901367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.968070Z", "completed_at": "2022-10-28T17:32:08.305086Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.306150Z", "completed_at": "2022-10-28T17:32:08.306155Z"}], "thread_id": "Thread-2", "execution_time": 1.4679338932037354, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.968245Z", "completed_at": "2022-10-28T17:32:08.305282Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.306329Z", "completed_at": "2022-10-28T17:32:08.306332Z"}], "thread_id": "Thread-3", "execution_time": 1.4678001403808594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.436011Z", "completed_at": "2022-10-28T17:32:08.444389Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.444748Z", "completed_at": "2022-10-28T17:32:08.444755Z"}], "thread_id": "Thread-2", "execution_time": 0.00994873046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.436103Z", "completed_at": "2022-10-28T17:32:08.444493Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.444834Z", "completed_at": "2022-10-28T17:32:08.444837Z"}], "thread_id": "Thread-3", "execution_time": 0.009969949722290039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:06.967861Z", "completed_at": "2022-10-28T17:32:08.304891Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.305816Z", "completed_at": "2022-10-28T17:32:08.305820Z"}], "thread_id": "Thread-4", "execution_time": 1.4811129570007324, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.464215Z", "completed_at": "2022-10-28T17:32:08.470444Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.470698Z", "completed_at": "2022-10-28T17:32:08.470705Z"}], "thread_id": "Thread-4", "execution_time": 0.023891925811767578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__transactions"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.447399Z", "completed_at": "2022-10-28T17:32:08.470759Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.472084Z", "completed_at": "2022-10-28T17:32:08.472089Z"}], "thread_id": "Thread-2", "execution_time": 0.026879072189331055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.473381Z", "completed_at": "2022-10-28T17:32:08.484962Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.485432Z", "completed_at": "2022-10-28T17:32:08.485439Z"}], "thread_id": "Thread-3", "execution_time": 0.013703346252441406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.473461Z", "completed_at": "2022-10-28T17:32:08.485076Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.485521Z", "completed_at": "2022-10-28T17:32:08.485525Z"}], "thread_id": "Thread-4", "execution_time": 0.013738870620727539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.481331Z", "completed_at": "2022-10-28T17:32:08.485365Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.486320Z", "completed_at": "2022-10-28T17:32:08.486324Z"}], "thread_id": "Thread-2", "execution_time": 0.013330936431884766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.488157Z", "completed_at": "2022-10-28T17:32:08.545817Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.546017Z", "completed_at": "2022-10-28T17:32:08.546024Z"}], "thread_id": "Thread-3", "execution_time": 0.05931401252746582, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__order_lines"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.488245Z", "completed_at": "2022-10-28T17:32:08.546756Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.548158Z", "completed_at": "2022-10-28T17:32:08.548163Z"}], "thread_id": "Thread-4", "execution_time": 0.06156516075134277, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.548256Z", "completed_at": "2022-10-28T17:32:08.558509Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.563389Z", "completed_at": "2022-10-28T17:32:08.563396Z"}], "thread_id": "Thread-3", "execution_time": 0.016840219497680664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.554406Z", "completed_at": "2022-10-28T17:32:08.558831Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.563984Z", "completed_at": "2022-10-28T17:32:08.563988Z"}], "thread_id": "Thread-2", "execution_time": 0.016135215759277344, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.565497Z", "completed_at": "2022-10-28T17:32:08.576705Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.576914Z", "completed_at": "2022-10-28T17:32:08.576922Z"}], "thread_id": "Thread-3", "execution_time": 0.012480974197387695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.571640Z", "completed_at": "2022-10-28T17:32:08.581812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.582100Z", "completed_at": "2022-10-28T17:32:08.582105Z"}], "thread_id": "Thread-2", "execution_time": 0.017261028289794922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__products"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.577812Z", "completed_at": "2022-10-28T17:32:08.582000Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.582679Z", "completed_at": "2022-10-28T17:32:08.582683Z"}], "thread_id": "Thread-3", "execution_time": 0.00563502311706543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.583844Z", "completed_at": "2022-10-28T17:32:08.588013Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:08.588199Z", "completed_at": "2022-10-28T17:32:08.588205Z"}], "thread_id": "Thread-2", "execution_time": 0.004991054534912109, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.358871Z", "completed_at": "2022-10-28T17:32:09.597784Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.598402Z", "completed_at": "2022-10-28T17:32:09.598424Z"}], "thread_id": "Thread-1", "execution_time": 1.375688076019287, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__events"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.742566Z", "completed_at": "2022-10-28T17:32:09.814834Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.815330Z", "completed_at": "2022-10-28T17:32:09.815338Z"}], "thread_id": "Thread-3", "execution_time": 0.0774390697479248, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__person_campaign_flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.743112Z", "completed_at": "2022-10-28T17:32:09.815411Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.816445Z", "completed_at": "2022-10-28T17:32:09.816452Z"}], "thread_id": "Thread-2", "execution_time": 0.07715010643005371, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.817625Z", "completed_at": "2022-10-28T17:32:09.825150Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.825363Z", "completed_at": "2022-10-28T17:32:09.825369Z"}], "thread_id": "Thread-3", "execution_time": 0.009039878845214844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.822110Z", "completed_at": "2022-10-28T17:32:09.825467Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.826111Z", "completed_at": "2022-10-28T17:32:09.826115Z"}], "thread_id": "Thread-2", "execution_time": 0.008965015411376953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:08.558646Z", "completed_at": "2022-10-28T17:32:09.814962Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.815505Z", "completed_at": "2022-10-28T17:32:09.815509Z"}], "thread_id": "Thread-4", "execution_time": 1.3981330394744873, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customers"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.954311Z", "completed_at": "2022-10-28T17:32:09.963624Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.963900Z", "completed_at": "2022-10-28T17:32:09.963908Z"}], "thread_id": "Thread-4", "execution_time": 0.010902881622314453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.965332Z", "completed_at": "2022-10-28T17:32:09.970110Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.970370Z", "completed_at": "2022-10-28T17:32:09.970378Z"}], "thread_id": "Thread-4", "execution_time": 0.0060231685638427734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.971633Z", "completed_at": "2022-10-28T17:32:09.979764Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:09.979978Z", "completed_at": "2022-10-28T17:32:09.979984Z"}], "thread_id": "Thread-4", "execution_time": 0.009145975112915039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customer_cohorts"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.827028Z", "completed_at": "2022-10-28T17:32:11.076574Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.078427Z", "completed_at": "2022-10-28T17:32:11.078452Z"}], "thread_id": "Thread-3", "execution_time": 1.376533031463623, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.775226Z", "completed_at": "2022-10-28T17:32:11.078174Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.079202Z", "completed_at": "2022-10-28T17:32:11.079213Z"}], "thread_id": "Thread-1", "execution_time": 1.4970192909240723, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.832867Z", "completed_at": "2022-10-28T17:32:11.092249Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.092691Z", "completed_at": "2022-10-28T17:32:11.092703Z"}], "thread_id": "Thread-2", "execution_time": 1.413248062133789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__person_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.207705Z", "completed_at": "2022-10-28T17:32:11.242732Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.244910Z", "completed_at": "2022-10-28T17:32:11.244918Z"}], "thread_id": "Thread-3", "execution_time": 0.04848217964172363, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.244533Z", "completed_at": "2022-10-28T17:32:11.260637Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.261443Z", "completed_at": "2022-10-28T17:32:11.261455Z"}], "thread_id": "Thread-1", "execution_time": 0.03114914894104004, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.245089Z", "completed_at": "2022-10-28T17:32:11.261129Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.273311Z", "completed_at": "2022-10-28T17:32:11.273317Z"}], "thread_id": "Thread-2", "execution_time": 0.03102898597717285, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.281430Z", "completed_at": "2022-10-28T17:32:11.289414Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.289610Z", "completed_at": "2022-10-28T17:32:11.289617Z"}], "thread_id": "Thread-2", "execution_time": 0.014653205871582031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.290693Z", "completed_at": "2022-10-28T17:32:11.295671Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.295867Z", "completed_at": "2022-10-28T17:32:11.295873Z"}], "thread_id": "Thread-2", "execution_time": 0.005940914154052734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.296904Z", "completed_at": "2022-10-28T17:32:11.301727Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.301916Z", "completed_at": "2022-10-28T17:32:11.301921Z"}], "thread_id": "Thread-2", "execution_time": 0.005641937255859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:09.981184Z", "completed_at": "2022-10-28T17:32:11.242579Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.244715Z", "completed_at": "2022-10-28T17:32:11.244727Z"}], "thread_id": "Thread-4", "execution_time": 1.4133787155151367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.395048Z", "completed_at": "2022-10-28T17:32:11.400582Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.400802Z", "completed_at": "2022-10-28T17:32:11.400809Z"}], "thread_id": "Thread-4", "execution_time": 0.00657200813293457, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.401936Z", "completed_at": "2022-10-28T17:32:11.405535Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:11.405725Z", "completed_at": "2022-10-28T17:32:11.405731Z"}], "thread_id": "Thread-4", "execution_time": 0.0045397281646728516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.261282Z", "completed_at": "2022-10-28T17:32:12.540410Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.541536Z", "completed_at": "2022-10-28T17:32:12.541585Z"}], "thread_id": "Thread-3", "execution_time": 1.4272058010101318, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__campaigns"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.275641Z", "completed_at": "2022-10-28T17:32:12.570155Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.570694Z", "completed_at": "2022-10-28T17:32:12.570711Z"}], "thread_id": "Thread-1", "execution_time": 1.4356250762939453, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__flows"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.692119Z", "completed_at": "2022-10-28T17:32:12.709162Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.711011Z", "completed_at": "2022-10-28T17:32:12.711018Z"}], "thread_id": "Thread-3", "execution_time": 0.02184605598449707, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.302793Z", "completed_at": "2022-10-28T17:32:12.579307Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.579794Z", "completed_at": "2022-10-28T17:32:12.579806Z"}], "thread_id": "Thread-2", "execution_time": 1.4210739135742188, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__persons"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.712444Z", "completed_at": "2022-10-28T17:32:12.723841Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.725077Z", "completed_at": "2022-10-28T17:32:12.725084Z"}], "thread_id": "Thread-1", "execution_time": 0.014543771743774414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.717770Z", "completed_at": "2022-10-28T17:32:12.724855Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.726029Z", "completed_at": "2022-10-28T17:32:12.726037Z"}], "thread_id": "Thread-3", "execution_time": 0.019464969635009766, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.725906Z", "completed_at": "2022-10-28T17:32:12.733420Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.744618Z", "completed_at": "2022-10-28T17:32:12.744629Z"}], "thread_id": "Thread-2", "execution_time": 0.026561975479125977, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.744466Z", "completed_at": "2022-10-28T17:32:12.752146Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.752579Z", "completed_at": "2022-10-28T17:32:12.752585Z"}], "thread_id": "Thread-3", "execution_time": 0.024013042449951172, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.752474Z", "completed_at": "2022-10-28T17:32:12.758118Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.762069Z", "completed_at": "2022-10-28T17:32:12.762079Z"}], "thread_id": "Thread-2", "execution_time": 0.010725259780883789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.758015Z", "completed_at": "2022-10-28T17:32:12.762812Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.763490Z", "completed_at": "2022-10-28T17:32:12.763496Z"}], "thread_id": "Thread-3", "execution_time": 0.006368160247802734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.763593Z", "completed_at": "2022-10-28T17:32:12.768858Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.769043Z", "completed_at": "2022-10-28T17:32:12.769049Z"}], "thread_id": "Thread-2", "execution_time": 0.006434917449951172, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:11.406720Z", "completed_at": "2022-10-28T17:32:12.802623Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:12.802872Z", "completed_at": "2022-10-28T17:32:12.802879Z"}], "thread_id": "Thread-4", "execution_time": 1.5726749897003174, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.985913Z", "completed_at": "2022-10-28T17:32:13.011349Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:13.011869Z", "completed_at": "2022-10-28T17:32:13.011889Z"}], "thread_id": "Thread-3", "execution_time": 0.02877330780029297, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:12.733534Z", "completed_at": "2022-10-28T17:32:14.206528Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:14.207650Z", "completed_at": "2022-10-28T17:32:14.207693Z"}], "thread_id": "Thread-1", "execution_time": 1.623218059539795, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:14.361845Z", "completed_at": "2022-10-28T17:32:15.801279Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:15.802399Z", "completed_at": "2022-10-28T17:32:15.802449Z"}], "thread_id": "Thread-4", "execution_time": 1.5933539867401123, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-10-28T17:32:15.958866Z", "completed_at": "2022-10-28T17:32:15.975849Z"}, {"name": "execute", "started_at": "2022-10-28T17:32:15.976059Z", "completed_at": "2022-10-28T17:32:15.976066Z"}], "thread_id": "Thread-3", "execution_time": 0.019481182098388672, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"}], "elapsed_time": 19.156047105789185, "args": {"write_json": true, "use_colors": true, "printer_width": 80, "version_check": true, "partial_parse": true, "static_parser": true, "profiles_dir": "/Users/avinash.kunnath/.dbt", "send_anonymous_usage_stats": true, "event_buffer_size": 100000, "quiet": false, "no_print": 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.3.0", "generated_at": "2022-12-19T20:41:13.726393Z", "invocation_id": "3d9ead59-11b7-4031-9555-dbd173d712a2", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.158622Z", "completed_at": "2022-12-19T20:41:10.176167Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.176786Z", "completed_at": "2022-12-19T20:41:10.176795Z"}], "thread_id": "Thread-2", "execution_time": 0.019913911819458008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.158732Z", "completed_at": "2022-12-19T20:41:10.176254Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.176875Z", "completed_at": "2022-12-19T20:41:10.176877Z"}], "thread_id": "Thread-3", "execution_time": 0.01992201805114746, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.158822Z", "completed_at": "2022-12-19T20:41:10.176325Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.176946Z", "completed_at": "2022-12-19T20:41:10.176949Z"}], "thread_id": "Thread-4", "execution_time": 0.019916057586669922, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.179701Z", "completed_at": "2022-12-19T20:41:10.183119Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.183603Z", "completed_at": "2022-12-19T20:41:10.183608Z"}], "thread_id": "Thread-2", "execution_time": 0.005738258361816406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.179788Z", "completed_at": "2022-12-19T20:41:10.183225Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.183680Z", "completed_at": "2022-12-19T20:41:10.183682Z"}], "thread_id": "Thread-3", "execution_time": 0.0056667327880859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.179862Z", "completed_at": "2022-12-19T20:41:10.183302Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.183792Z", "completed_at": "2022-12-19T20:41:10.183800Z"}], "thread_id": "Thread-4", "execution_time": 0.005642890930175781, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.186136Z", "completed_at": "2022-12-19T20:41:10.190067Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.190513Z", "completed_at": "2022-12-19T20:41:10.190517Z"}], "thread_id": "Thread-2", "execution_time": 0.005687236785888672, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_customer_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.186210Z", "completed_at": "2022-12-19T20:41:10.190151Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.190584Z", "completed_at": "2022-12-19T20:41:10.190586Z"}], "thread_id": "Thread-3", "execution_time": 0.005706071853637695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_adjustment_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.186278Z", "completed_at": "2022-12-19T20:41:10.190225Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.190651Z", "completed_at": "2022-12-19T20:41:10.190653Z"}], "thread_id": "Thread-4", "execution_time": 0.0056612491607666016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.192801Z", "completed_at": "2022-12-19T20:41:10.195786Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.196203Z", "completed_at": "2022-12-19T20:41:10.196206Z"}], "thread_id": "Thread-2", "execution_time": 0.004611015319824219, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.192867Z", "completed_at": "2022-12-19T20:41:10.195858Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.196271Z", "completed_at": "2022-12-19T20:41:10.196273Z"}], "thread_id": "Thread-3", "execution_time": 0.004633903503417969, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_order_line_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.192931Z", "completed_at": "2022-12-19T20:41:10.195924Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.196339Z", "completed_at": "2022-12-19T20:41:10.196341Z"}], "thread_id": "Thread-4", "execution_time": 0.004801034927368164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.199034Z", "completed_at": "2022-12-19T20:41:10.227332Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.227850Z", "completed_at": "2022-12-19T20:41:10.227855Z"}], "thread_id": "Thread-2", "execution_time": 0.03023219108581543, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_product_variant_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.199101Z", "completed_at": "2022-12-19T20:41:10.227462Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.227924Z", "completed_at": "2022-12-19T20:41:10.227927Z"}], "thread_id": "Thread-3", "execution_time": 0.030256986618041992, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_refund_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.199167Z", "completed_at": "2022-12-19T20:41:10.227547Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.227990Z", "completed_at": "2022-12-19T20:41:10.227992Z"}], "thread_id": "Thread-4", "execution_time": 0.030173063278198242, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.shopify_holistic_reporting_integration_tests.shopify_transaction_data"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.230559Z", "completed_at": "2022-12-19T20:41:10.247948Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.248126Z", "completed_at": "2022-12-19T20:41:10.248131Z"}], "thread_id": "Thread-4", "execution_time": 0.01833963394165039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.230495Z", "completed_at": "2022-12-19T20:41:10.251292Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.251863Z", "completed_at": "2022-12-19T20:41:10.251868Z"}], "thread_id": "Thread-3", "execution_time": 0.022485971450805664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.230425Z", "completed_at": "2022-12-19T20:41:10.251381Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.252030Z", "completed_at": "2022-12-19T20:41:10.252034Z"}], "thread_id": "Thread-2", "execution_time": 0.023077964782714844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.248868Z", "completed_at": "2022-12-19T20:41:10.251954Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.252997Z", "completed_at": "2022-12-19T20:41:10.253002Z"}], "thread_id": "Thread-4", "execution_time": 0.00513911247253418, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.254458Z", "completed_at": "2022-12-19T20:41:10.263726Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.264164Z", "completed_at": "2022-12-19T20:41:10.264170Z"}], "thread_id": "Thread-3", "execution_time": 0.011260032653808594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.254766Z", "completed_at": "2022-12-19T20:41:10.263823Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.264237Z", "completed_at": "2022-12-19T20:41:10.264239Z"}], "thread_id": "Thread-2", "execution_time": 0.010958671569824219, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.261090Z", "completed_at": "2022-12-19T20:41:10.264094Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.264942Z", "completed_at": "2022-12-19T20:41:10.264946Z"}], "thread_id": "Thread-4", "execution_time": 0.01096200942993164, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.266664Z", "completed_at": "2022-12-19T20:41:10.274639Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.274804Z", "completed_at": "2022-12-19T20:41:10.274809Z"}], "thread_id": "Thread-2", "execution_time": 0.00919795036315918, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.266590Z", "completed_at": "2022-12-19T20:41:10.275160Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.275905Z", "completed_at": "2022-12-19T20:41:10.275909Z"}], "thread_id": "Thread-3", "execution_time": 0.010658025741577148, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.272024Z", "completed_at": "2022-12-19T20:41:10.275332Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.276056Z", "completed_at": "2022-12-19T20:41:10.276059Z"}], "thread_id": "Thread-4", "execution_time": 0.010251998901367188, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.276399Z", "completed_at": "2022-12-19T20:41:10.281086Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.284110Z", "completed_at": "2022-12-19T20:41:10.284117Z"}], "thread_id": "Thread-2", "execution_time": 0.01137089729309082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.281235Z", "completed_at": "2022-12-19T20:41:10.287203Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.288187Z", "completed_at": "2022-12-19T20:41:10.288192Z"}], "thread_id": "Thread-3", "execution_time": 0.008083343505859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.281381Z", "completed_at": "2022-12-19T20:41:10.287538Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.288348Z", "completed_at": "2022-12-19T20:41:10.288351Z"}], "thread_id": "Thread-4", "execution_time": 0.00819706916809082, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.288741Z", "completed_at": "2022-12-19T20:41:10.294536Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.298297Z", "completed_at": "2022-12-19T20:41:10.298313Z"}], "thread_id": "Thread-2", "execution_time": 0.011208772659301758, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.294455Z", "completed_at": "2022-12-19T20:41:10.298437Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.307320Z", "completed_at": "2022-12-19T20:41:10.307331Z"}], "thread_id": "Thread-3", "execution_time": 0.014371156692504883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction_tmp"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.158503Z", "completed_at": "2022-12-19T20:41:10.438378Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.438580Z", "completed_at": "2022-12-19T20:41:10.438587Z"}], "thread_id": "Thread-1", "execution_time": 0.310427188873291, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__calendar"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.309858Z", "completed_at": "2022-12-19T20:41:10.627460Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.627997Z", "completed_at": "2022-12-19T20:41:10.628006Z"}], "thread_id": "Thread-3", "execution_time": 0.36745500564575195, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__campaign"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.298573Z", "completed_at": "2022-12-19T20:41:10.627565Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.640721Z", "completed_at": "2022-12-19T20:41:10.640733Z"}], "thread_id": "Thread-4", "execution_time": 0.3837158679962158, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.309768Z", "completed_at": "2022-12-19T20:41:10.650882Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.651055Z", "completed_at": "2022-12-19T20:41:10.651060Z"}], "thread_id": "Thread-2", "execution_time": 0.37444210052490234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__event"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.468102Z", "completed_at": "2022-12-19T20:41:10.724557Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.724731Z", "completed_at": "2022-12-19T20:41:10.724737Z"}], "thread_id": "Thread-1", "execution_time": 0.2816939353942871, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__integration"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.683740Z", "completed_at": "2022-12-19T20:41:10.974489Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.974712Z", "completed_at": "2022-12-19T20:41:10.974720Z"}], "thread_id": "Thread-4", "execution_time": 0.31801795959472656, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__person"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.688217Z", "completed_at": "2022-12-19T20:41:10.975030Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.975495Z", "completed_at": "2022-12-19T20:41:10.975498Z"}], "thread_id": "Thread-2", "execution_time": 0.32309985160827637, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__customer"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.677386Z", "completed_at": "2022-12-19T20:41:10.974936Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:10.975412Z", "completed_at": "2022-12-19T20:41:10.975416Z"}], "thread_id": "Thread-3", "execution_time": 0.33031392097473145, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo_source.stg_klaviyo__metric"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:10.750204Z", "completed_at": "2022-12-19T20:41:11.048174Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.048359Z", "completed_at": "2022-12-19T20:41:11.048365Z"}], "thread_id": "Thread-1", "execution_time": 0.3265399932861328, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.001399Z", "completed_at": "2022-12-19T20:41:11.261393Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.261666Z", "completed_at": "2022-12-19T20:41:11.261675Z"}], "thread_id": "Thread-4", "execution_time": 0.28588390350341797, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_adjustment"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.008964Z", "completed_at": "2022-12-19T20:41:11.325507Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.325899Z", "completed_at": "2022-12-19T20:41:11.325902Z"}], "thread_id": "Thread-3", "execution_time": 0.34432101249694824, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line_refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.008883Z", "completed_at": "2022-12-19T20:41:11.325410Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.325808Z", "completed_at": "2022-12-19T20:41:11.325816Z"}], "thread_id": "Thread-2", "execution_time": 0.34501099586486816, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__order_line"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.077282Z", "completed_at": "2022-12-19T20:41:11.333865Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.334037Z", "completed_at": "2022-12-19T20:41:11.334042Z"}], "thread_id": "Thread-1", "execution_time": 0.29674291610717773, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.374436Z", "completed_at": "2022-12-19T20:41:11.382809Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.382995Z", "completed_at": "2022-12-19T20:41:11.383000Z"}], "thread_id": "Thread-1", "execution_time": 0.009196043014526367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__campaign_campaign_id__source_relation.59158488ff"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.383822Z", "completed_at": "2022-12-19T20:41:11.388877Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.389058Z", "completed_at": "2022-12-19T20:41:11.389062Z"}], "thread_id": "Thread-1", "execution_time": 0.0058248043060302734, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__campaign_campaign_id.5dfc47dc1d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.389836Z", "completed_at": "2022-12-19T20:41:11.393047Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.393215Z", "completed_at": "2022-12-19T20:41:11.393219Z"}], "thread_id": "Thread-1", "execution_time": 0.003885030746459961, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__flow_flow_id__source_relation.015215d481"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.394028Z", "completed_at": "2022-12-19T20:41:11.427472Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.427647Z", "completed_at": "2022-12-19T20:41:11.427653Z"}], "thread_id": "Thread-1", "execution_time": 0.03415179252624512, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__flow_flow_id.a00a897e42"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.428381Z", "completed_at": "2022-12-19T20:41:11.437333Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.437489Z", "completed_at": "2022-12-19T20:41:11.437493Z"}], "thread_id": "Thread-1", "execution_time": 0.009593963623046875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__event_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.438219Z", "completed_at": "2022-12-19T20:41:11.441361Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.441514Z", "completed_at": "2022-12-19T20:41:11.441518Z"}], "thread_id": "Thread-1", "execution_time": 0.003780841827392578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__event_event_id__source_relation.3778c651d7"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.442205Z", "completed_at": "2022-12-19T20:41:11.444570Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.444722Z", "completed_at": "2022-12-19T20:41:11.444725Z"}], "thread_id": "Thread-1", "execution_time": 0.002981901168823242, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__event_event_id.7a09ac6ec1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.445405Z", "completed_at": "2022-12-19T20:41:11.448426Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.448583Z", "completed_at": "2022-12-19T20:41:11.448587Z"}], "thread_id": "Thread-1", "execution_time": 0.003660917282104492, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__integration_integration_id__source_relation.be6158ad21"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.449313Z", "completed_at": "2022-12-19T20:41:11.451769Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.451915Z", "completed_at": "2022-12-19T20:41:11.451919Z"}], "thread_id": "Thread-1", "execution_time": 0.0030798912048339844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__integration_integration_id.fe572c5f1b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.452608Z", "completed_at": "2022-12-19T20:41:11.456320Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.456479Z", "completed_at": "2022-12-19T20:41:11.456483Z"}], "thread_id": "Thread-1", "execution_time": 0.004351377487182617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__person_person_id__source_relation.33a4f9ca24"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.457201Z", "completed_at": "2022-12-19T20:41:11.459605Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.459760Z", "completed_at": "2022-12-19T20:41:11.459764Z"}], "thread_id": "Thread-1", "execution_time": 0.0030450820922851562, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_email.c7094cfe27"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.460463Z", "completed_at": "2022-12-19T20:41:11.462794Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.462940Z", "completed_at": "2022-12-19T20:41:11.462943Z"}], "thread_id": "Thread-1", "execution_time": 0.002953052520751953, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__person_person_id.bd77ffc8aa"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.463639Z", "completed_at": "2022-12-19T20:41:11.467256Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.467411Z", "completed_at": "2022-12-19T20:41:11.467414Z"}], "thread_id": "Thread-1", "execution_time": 0.004241228103637695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.unique_stg_klaviyo__person_email.dc3a98b014"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.468116Z", "completed_at": "2022-12-19T20:41:11.471123Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.471280Z", "completed_at": "2022-12-19T20:41:11.471284Z"}], "thread_id": "Thread-1", "execution_time": 0.0036401748657226562, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__customer_customer_id__source_relation.1b2185db25"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.471978Z", "completed_at": "2022-12-19T20:41:11.474876Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.475023Z", "completed_at": "2022-12-19T20:41:11.475027Z"}], "thread_id": "Thread-1", "execution_time": 0.0035157203674316406, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.dbt_utils_unique_combination_of_columns_stg_klaviyo__metric_metric_id__source_relation.e9f33c04e5"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.475714Z", "completed_at": "2022-12-19T20:41:11.478836Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.478992Z", "completed_at": "2022-12-19T20:41:11.478997Z"}], "thread_id": "Thread-1", "execution_time": 0.0037679672241210938, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo_source.not_null_stg_klaviyo__metric_metric_id.4759d62078"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.479746Z", "completed_at": "2022-12-19T20:41:11.482798Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.482979Z", "completed_at": "2022-12-19T20:41:11.482983Z"}], "thread_id": "Thread-1", "execution_time": 0.0037298202514648438, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_order_id__source_relation.81d10381c1"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.483707Z", "completed_at": "2022-12-19T20:41:11.486874Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.487033Z", "completed_at": "2022-12-19T20:41:11.487037Z"}], "thread_id": "Thread-1", "execution_time": 0.003813028335571289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_adjustment_order_adjustment_id__source_relation.00b7d10cb0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.487867Z", "completed_at": "2022-12-19T20:41:11.491212Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.491374Z", "completed_at": "2022-12-19T20:41:11.491379Z"}], "thread_id": "Thread-1", "execution_time": 0.004076719284057617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_refund_order_line_refund_id__source_relation.1877420c29"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.495065Z", "completed_at": "2022-12-19T20:41:11.499190Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.499362Z", "completed_at": "2022-12-19T20:41:11.499366Z"}], "thread_id": "Thread-1", "execution_time": 0.004846096038818359, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__order_line_order_line_id__source_relation.c2797e7a9c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.500115Z", "completed_at": "2022-12-19T20:41:11.503140Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.503304Z", "completed_at": "2022-12-19T20:41:11.503307Z"}], "thread_id": "Thread-1", "execution_time": 0.0036962032318115234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_product_id__source_relation.48b32ab6a2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.288077Z", "completed_at": "2022-12-19T20:41:11.581279Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.581458Z", "completed_at": "2022-12-19T20:41:11.581465Z"}], "thread_id": "Thread-4", "execution_time": 0.3175380229949951, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__product_variant"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.605859Z", "completed_at": "2022-12-19T20:41:11.610435Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.610614Z", "completed_at": "2022-12-19T20:41:11.610618Z"}], "thread_id": "Thread-4", "execution_time": 0.0054168701171875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__event_attribution_event_id__source_relation.654b98ad2c"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.611439Z", "completed_at": "2022-12-19T20:41:11.614234Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.614399Z", "completed_at": "2022-12-19T20:41:11.614403Z"}], "thread_id": "Thread-4", "execution_time": 0.00350189208984375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__event_attribution_event_id.8d186152c4"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.620627Z", "completed_at": "2022-12-19T20:41:11.645047Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.645203Z", "completed_at": "2022-12-19T20:41:11.645206Z"}], "thread_id": "Thread-4", "execution_time": 0.03039693832397461, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders__order_line_aggregates_order_id__source_relation.09d921d473"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.646015Z", "completed_at": "2022-12-19T20:41:11.649488Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.649658Z", "completed_at": "2022-12-19T20:41:11.649661Z"}], "thread_id": "Thread-4", "execution_time": 0.0042269229888916016, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__product_variant_variant_id__source_relation.7506695ec0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.354435Z", "completed_at": "2022-12-19T20:41:11.628892Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.644839Z", "completed_at": "2022-12-19T20:41:11.644846Z"}], "thread_id": "Thread-3", "execution_time": 0.31683802604675293, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__refund"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.354520Z", "completed_at": "2022-12-19T20:41:11.649105Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.649348Z", "completed_at": "2022-12-19T20:41:11.649352Z"}], "thread_id": "Thread-2", "execution_time": 0.3253598213195801, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_source.stg_shopify__transaction"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.671756Z", "completed_at": "2022-12-19T20:41:11.679695Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.680650Z", "completed_at": "2022-12-19T20:41:11.680654Z"}], "thread_id": "Thread-3", "execution_time": 0.00984811782836914, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__refund_refund_id__source_relation.cd4dbc2b35"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.681345Z", "completed_at": "2022-12-19T20:41:11.689727Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.710760Z", "completed_at": "2022-12-19T20:41:11.710767Z"}], "thread_id": "Thread-2", "execution_time": 0.030745983123779297, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__transactions"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.681529Z", "completed_at": "2022-12-19T20:41:11.689910Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.710847Z", "completed_at": "2022-12-19T20:41:11.710850Z"}], "thread_id": "Thread-4", "execution_time": 0.030762910842895508, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_source.dbt_utils_unique_combination_of_columns_stg_shopify__transaction_transaction_id__source_relation.d55a33652a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.689818Z", "completed_at": "2022-12-19T20:41:11.711865Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.712658Z", "completed_at": "2022-12-19T20:41:11.712662Z"}], "thread_id": "Thread-3", "execution_time": 0.026569843292236328, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__order_lines"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.712801Z", "completed_at": "2022-12-19T20:41:11.739029Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.739287Z", "completed_at": "2022-12-19T20:41:11.739293Z"}], "thread_id": "Thread-2", "execution_time": 0.0278470516204834, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.735194Z", "completed_at": "2022-12-19T20:41:11.739353Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.740609Z", "completed_at": "2022-12-19T20:41:11.740612Z"}], "thread_id": "Thread-3", "execution_time": 0.006443977355957031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__transactions_transaction_id__source_relation.7341b755c0"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.741639Z", "completed_at": "2022-12-19T20:41:11.748704Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.753620Z", "completed_at": "2022-12-19T20:41:11.753627Z"}], "thread_id": "Thread-4", "execution_time": 0.013316869735717773, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__order_lines_order_line_id__source_relation.2483d5ef95"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.748565Z", "completed_at": "2022-12-19T20:41:11.754116Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.754708Z", "completed_at": "2022-12-19T20:41:11.754711Z"}], "thread_id": "Thread-3", "execution_time": 0.013221025466918945, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers__order_aggregates_customer_id__source_relation.5a5e85c8a9"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.755122Z", "completed_at": "2022-12-19T20:41:11.759769Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.763077Z", "completed_at": "2022-12-19T20:41:11.763083Z"}], "thread_id": "Thread-4", "execution_time": 0.00887298583984375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__products"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.759694Z", "completed_at": "2022-12-19T20:41:11.763686Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.764160Z", "completed_at": "2022-12-19T20:41:11.764163Z"}], "thread_id": "Thread-3", "execution_time": 0.005203962326049805, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__orders_order_id__source_relation.b2d1eaf63d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.764236Z", "completed_at": "2022-12-19T20:41:11.768047Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.768232Z", "completed_at": "2022-12-19T20:41:11.768236Z"}], "thread_id": "Thread-4", "execution_time": 0.004701852798461914, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__products_product_id__source_relation.f00b2fb95a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.504026Z", "completed_at": "2022-12-19T20:41:11.799915Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.800118Z", "completed_at": "2022-12-19T20:41:11.800124Z"}], "thread_id": "Thread-1", "execution_time": 0.3259570598602295, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__events"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.831488Z", "completed_at": "2022-12-19T20:41:11.854157Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.854635Z", "completed_at": "2022-12-19T20:41:11.854643Z"}], "thread_id": "Thread-3", "execution_time": 0.024695873260498047, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__person_campaign_flow"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.831708Z", "completed_at": "2022-12-19T20:41:11.854461Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.855265Z", "completed_at": "2022-12-19T20:41:11.855268Z"}], "thread_id": "Thread-4", "execution_time": 0.024953126907348633, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_klaviyo_user_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.860002Z", "completed_at": "2022-12-19T20:41:11.862558Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.862891Z", "completed_at": "2022-12-19T20:41:11.862896Z"}], "thread_id": "Thread-4", "execution_time": 0.006834983825683594, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__events_event_id.eada7340ba"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.856644Z", "completed_at": "2022-12-19T20:41:11.862627Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:11.862979Z", "completed_at": "2022-12-19T20:41:11.862983Z"}], "thread_id": "Thread-3", "execution_time": 0.007642984390258789, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__events_event_id__source_relation.847dad4174"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.741713Z", "completed_at": "2022-12-19T20:41:12.017107Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.017328Z", "completed_at": "2022-12-19T20:41:12.017335Z"}], "thread_id": "Thread-2", "execution_time": 0.30120229721069336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customers"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.043056Z", "completed_at": "2022-12-19T20:41:12.048357Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.048562Z", "completed_at": "2022-12-19T20:41:12.048567Z"}], "thread_id": "Thread-2", "execution_time": 0.006224870681762695, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__person_campaign_flow_person_id__last_touch_campaign_id__last_touch_flow_id__variation_id__source_relation.30e1824079"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.049565Z", "completed_at": "2022-12-19T20:41:12.052627Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.052807Z", "completed_at": "2022-12-19T20:41:12.052812Z"}], "thread_id": "Thread-2", "execution_time": 0.003912925720214844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__person_campaign_flow_person_id.e27d13b0f2"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.053654Z", "completed_at": "2022-12-19T20:41:12.059707Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.059891Z", "completed_at": "2022-12-19T20:41:12.059896Z"}], "thread_id": "Thread-2", "execution_time": 0.006791353225708008, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify.shopify__customer_cohorts"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.840551Z", "completed_at": "2022-12-19T20:41:12.134167Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.134381Z", "completed_at": "2022-12-19T20:41:12.134389Z"}], "thread_id": "Thread-1", "execution_time": 0.3322129249572754, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__orders_attribution"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.864539Z", "completed_at": "2022-12-19T20:41:12.142281Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.142495Z", "completed_at": "2022-12-19T20:41:12.142500Z"}], "thread_id": "Thread-4", "execution_time": 0.30498194694519043, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__campaign_flow_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.164368Z", "completed_at": "2022-12-19T20:41:12.169609Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.169976Z", "completed_at": "2022-12-19T20:41:12.169980Z"}], "thread_id": "Thread-1", "execution_time": 0.009203910827636719, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.dbt_utils_unique_combination_of_columns_shopify__customers_customer_id__source_relation.88d3656469"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.169891Z", "completed_at": "2022-12-19T20:41:12.173833Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.176645Z", "completed_at": "2022-12-19T20:41:12.176650Z"}], "thread_id": "Thread-4", "execution_time": 0.007665872573852539, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.not_null_shopify__customer_cohorts_customer_cohort_id.88e9c30925"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.173926Z", "completed_at": "2022-12-19T20:41:12.177439Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.177787Z", "completed_at": "2022-12-19T20:41:12.177790Z"}], "thread_id": "Thread-1", "execution_time": 0.008906126022338867, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify.unique_shopify__customer_cohorts_customer_cohort_id.c5e4855c7a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.177704Z", "completed_at": "2022-12-19T20:41:12.183123Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.186425Z", "completed_at": "2022-12-19T20:41:12.186429Z"}], "thread_id": "Thread-4", "execution_time": 0.009518861770629883, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__daily_shopify_customer_orders"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.183210Z", "completed_at": "2022-12-19T20:41:12.187377Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.192417Z", "completed_at": "2022-12-19T20:41:12.192422Z"}], "thread_id": "Thread-1", "execution_time": 0.009954214096069336, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__orders_attribution_order_id__shopify_source_relation.0eb46743bb"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.060756Z", "completed_at": "2022-12-19T20:41:12.324106Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.324287Z", "completed_at": "2022-12-19T20:41:12.324294Z"}], "thread_id": "Thread-2", "execution_time": 0.2908611297607422, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__shopify_customer_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.352085Z", "completed_at": "2022-12-19T20:41:12.392926Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.393111Z", "completed_at": "2022-12-19T20:41:12.393117Z"}], "thread_id": "Thread-2", "execution_time": 0.04166388511657715, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__campaign_flow_metrics_variation_id__source_relation__last_touch_campaign_id__last_touch_flow_id.3ea05faa81"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.187457Z", "completed_at": "2022-12-19T20:41:12.496637Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.496831Z", "completed_at": "2022-12-19T20:41:12.496835Z"}], "thread_id": "Thread-4", "execution_time": 0.3412442207336426, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__campaigns"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:11.864620Z", "completed_at": "2022-12-19T20:41:12.496270Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.496463Z", "completed_at": "2022-12-19T20:41:12.496469Z"}], "thread_id": "Thread-3", "execution_time": 0.6691501140594482, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.int_klaviyo__person_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.193468Z", "completed_at": "2022-12-19T20:41:12.496984Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.497152Z", "completed_at": "2022-12-19T20:41:12.497156Z"}], "thread_id": "Thread-1", "execution_time": 0.34095311164855957, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__flows"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.529084Z", "completed_at": "2022-12-19T20:41:12.534784Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.538220Z", "completed_at": "2022-12-19T20:41:12.538228Z"}], "thread_id": "Thread-4", "execution_time": 0.009916305541992188, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__campaigns_campaign_variation_key__source_relation.e5d14aee28"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.534860Z", "completed_at": "2022-12-19T20:41:12.538832Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.548040Z", "completed_at": "2022-12-19T20:41:12.548047Z"}], "thread_id": "Thread-3", "execution_time": 0.014666080474853516, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__campaigns_campaign_variation_key.c4588cdadc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.549783Z", "completed_at": "2022-12-19T20:41:12.553457Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.558546Z", "completed_at": "2022-12-19T20:41:12.558560Z"}], "thread_id": "Thread-3", "execution_time": 0.010380983352661133, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_int_klaviyo__person_metrics_person_id.2c0f4e5a67"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.554341Z", "completed_at": "2022-12-19T20:41:12.559367Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.563776Z", "completed_at": "2022-12-19T20:41:12.563786Z"}], "thread_id": "Thread-4", "execution_time": 0.014828205108642578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_int_klaviyo__person_metrics_person_id__source_relation.4897d57f8b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.559917Z", "completed_at": "2022-12-19T20:41:12.564324Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.564911Z", "completed_at": "2022-12-19T20:41:12.564915Z"}], "thread_id": "Thread-3", "execution_time": 0.005711078643798828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__flows_flow_variation_key__source_relation.925d4118dc"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.565411Z", "completed_at": "2022-12-19T20:41:12.569481Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.569654Z", "completed_at": "2022-12-19T20:41:12.569660Z"}], "thread_id": "Thread-4", "execution_time": 0.005228757858276367, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__flows_flow_variation_key.152c0d960b"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.393939Z", "completed_at": "2022-12-19T20:41:12.704182Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.704360Z", "completed_at": "2022-12-19T20:41:12.704367Z"}], "thread_id": "Thread-2", "execution_time": 0.33893418312072754, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__daily_customer_metrics"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.733343Z", "completed_at": "2022-12-19T20:41:12.738136Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:12.738314Z", "completed_at": "2022-12-19T20:41:12.738320Z"}], "thread_id": "Thread-3", "execution_time": 0.005550861358642578, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__daily_customer_metrics_date_day__email__klaviyo_source_relation__shopify_source_relation__campaign_id__flow_id__variation_id.0489c190fd"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:12.538367Z", "completed_at": "2022-12-19T20:41:13.067882Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.068073Z", "completed_at": "2022-12-19T20:41:13.068080Z"}], "thread_id": "Thread-1", "execution_time": 0.5614199638366699, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.klaviyo.klaviyo__persons"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.104395Z", "completed_at": "2022-12-19T20:41:13.108425Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.108620Z", "completed_at": "2022-12-19T20:41:13.108627Z"}], "thread_id": "Thread-4", "execution_time": 0.004915952682495117, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.dbt_utils_unique_combination_of_columns_klaviyo__persons_person_id__source_relation.b223d703b3"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.112107Z", "completed_at": "2022-12-19T20:41:13.123144Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.123682Z", "completed_at": "2022-12-19T20:41:13.123690Z"}], "thread_id": "Thread-4", "execution_time": 0.01302480697631836, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_person_id.624a41e75a"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.119010Z", "completed_at": "2022-12-19T20:41:13.127258Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.127699Z", "completed_at": "2022-12-19T20:41:13.127706Z"}], "thread_id": "Thread-1", "execution_time": 0.015729904174804688, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.unique_klaviyo__persons_email.a330194dd6"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.123353Z", "completed_at": "2022-12-19T20:41:13.128347Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.128600Z", "completed_at": "2022-12-19T20:41:13.128605Z"}], "thread_id": "Thread-3", "execution_time": 0.010381221771240234, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.klaviyo.not_null_klaviyo__persons_email.072e38d07d"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.097938Z", "completed_at": "2022-12-19T20:41:13.358055Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.358230Z", "completed_at": "2022-12-19T20:41:13.358236Z"}], "thread_id": "Thread-2", "execution_time": 0.2856922149658203, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.int__klaviyo_person_rollup"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.384159Z", "completed_at": "2022-12-19T20:41:13.691287Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.691470Z", "completed_at": "2022-12-19T20:41:13.691478Z"}], "thread_id": "Thread-4", "execution_time": 0.3359200954437256, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.shopify_holistic_reporting.shopify_holistic_reporting__customer_enhanced"}, {"status": "success", "timing": [{"name": "compile", "started_at": "2022-12-19T20:41:13.720729Z", "completed_at": "2022-12-19T20:41:13.724783Z"}, {"name": "execute", "started_at": "2022-12-19T20:41:13.724963Z", "completed_at": "2022-12-19T20:41:13.724970Z"}], "thread_id": "Thread-3", "execution_time": 0.004857063293457031, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.shopify_holistic_reporting.dbt_utils_unique_combination_of_columns_shopify_holistic_reporting__customer_enhanced_email__klaviyo_source_relation__shopify_source_relation.2ea9394109"}], "elapsed_time": 5.500794887542725, "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, "event_buffer_size": 100000, "quiet": false, "no_print": false, "target": "postgres", "compile": true, "which": "generate", "rpc_method": "docs.generate", "indirect_selection": "eager"}} \ No newline at end of file From 862bb6eb372e12d40a4db8903eb61e87319c704e Mon Sep 17 00:00:00 2001 From: fivetran-joemarkiewicz Date: Tue, 20 Dec 2022 16:04:14 -0600 Subject: [PATCH 19/19] update package dependency --- packages.yml | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/packages.yml b/packages.yml index 53e7101..ccc7347 100644 --- a/packages.yml +++ b/packages.yml @@ -1,15 +1,6 @@ packages: -# - package: fivetran/shopify -# version: [">=0.7.0", "<0.8.0"] +- package: fivetran/shopify + version: [">=0.7.0", "<0.8.0"] -# - package: fivetran/klaviyo -# version: [">=0.5.0", "<0.6.0"] - -# IMPORTANT: MAKE SURE TO REVERT BACK BEFORE MERGING -- git: https://github.com/fivetran/dbt_shopify.git - revision: MagicBot/dbt-utils-cross-db-migration - warn-unpinned: false - -- git: https://github.com/fivetran/dbt_klaviyo.git - revision: MagicBot/dbt-utils-cross-db-migration - warn-unpinned: false \ No newline at end of file +- package: fivetran/klaviyo + version: [">=0.5.0", "<0.6.0"]